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