racket / htdp

Other
91 stars 69 forks source link

empty-image does not always preserve image equality #204

Closed rxg closed 11 months ago

rxg commented 11 months ago

What version of Racket are you using? e.g., 8.6 [cs]

What program did you run? Please include a short example that triggers the bug

lang racket

(require 2htdp/image)

(define R1 (bitmap/url "https://www.goldderby.com/wp-content/uploads/2018/10/Ryan-Gosling-Movies-Ranked.jpg?w=620&h=360&crop=1")) (define R2 (bitmap/url "https://www.usmagazine.com/wp-content/uploads/2023/04/Ryan-Gosling-New-Shaggy-Hairstyle.jpg?w=1200&quality=86&strip=all"))

(equal? (above (above R1 (beside R1 R2)) empty-image) (above R1 (beside R1 R2)))

What should have happened?

t

If you got an error message, please include it here.

f

Please include any other relevant details e.g., the operating system used or how you are running the code. Running on Mac OS X Monterey on a Macbook pro

rfindler commented 11 months ago

Here's an example that's simpler (when viewed from the perspective of the image library!). Not sure what's going on yet, tho.

#lang racket
(require 2htdp/image)

(define w1 2)
(define h1 2)
(define w2 2)
(define h2 3)

(require (only-in racket/draw make-bitmap bitmap-dc% color%))
(define b1 (make-bitmap w1 h1))
(define b2 (make-bitmap w2 h2))
(define bdc (make-object bitmap-dc% b1))
(send bdc set-pen "black" 1 'transparent)
(send bdc set-brush (make-object color% 200 200 200) 'solid)
(send bdc draw-rectangle 0 0 w1 h1)
(send bdc set-bitmap b2)
(send bdc draw-rectangle 0 0 w1 h1)
(send bdc set-brush (make-object color% 100 100 100) 'solid)
(send bdc draw-rectangle 0 0 w2 h2)
(send bdc set-bitmap #f)

(define R1 (rotate 0 b1))
(define R2 (rotate 0 b2))
(define I (above R1 (beside R1 R2)))
(equal? (above I empty-image) I)