The change looks ok to me.
At Fri, 10 May 2013 19:23:35 -0600, Jay McCarthy wrote: > No matter what the input color's alpha is, set-pixel uses 100% > opacity. Similarly, get-pixel ignores the alpha in the image. > > I think we should change this with the patch below, but I wonder if > there is some deeper reason it works this way and it shouldn't change. > Matthew? > > Jay > > diff --git a/collects/racket/draw/private/bitmap-dc.rkt > b/collects/racket/draw/private/bitmap-dc.rkt > index 08bb51c..5d9e241 100644 > --- a/collects/racket/draw/private/bitmap-dc.rkt > +++ b/collects/racket/draw/private/bitmap-dc.rkt > @@ -119,14 +119,18 @@ > (internal-get-bitmap)) > > (define/public (set-pixel x y c) > - (let ([s (bytes 255 (color-red c) (color-green c) (color-blue c))]) > + (let ([s (bytes (inexact->exact (round (* 255 (color-alpha c)))) > + (color-red c) > + (color-green c) > + (color-blue c))]) > (set-argb-pixels x y 1 1 s))) > > (define/public (get-pixel x y c) > (let-values ([(w h) (get-size)]) > (let ([b (make-bytes 4)]) > (get-argb-pixels x y 1 1 b) > - (send c set (bytes-ref b 1) (bytes-ref b 2) (bytes-ref b 3)) > + (send c set (bytes-ref b 1) (bytes-ref b 2) (bytes-ref b 3) > + (/ (bytes-ref b 0) 255)) > (and (<= 0 x w) (<= 0 y h))))) > > (define/public (set-argb-pixels x y w h bstr > > > -- > Jay McCarthy <j...@cs.byu.edu> > Assistant Professor / Brigham Young University > http://faculty.cs.byu.edu/~jay > > "The glory of God is Intelligence" - D&C 93 > _________________________ > Racket Developers list: > http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev