所以我试图找到或创建一个函数来确定某个点所在像素的颜色,任何关于它可能是什么/如何在Drracket中制作它的想法?我正在尝试制作它,以便找到点穿过的像素的颜色,然后如果颜色变为新的颜色。
答案 0 :(得分:0)
bitmap-dc
有get-pixel
方法。
答案 1 :(得分:0)
在大爆炸的鼠标中,您可以使用image-> color-list并使用list-ref来获取特定点。
(define img (circle 20 'solid 'red))
(define width (image-width img))
(define height (image-height img))
(define (color-indexes l)
(if (empty? l) empty (cons (take l width)
;r-rest not a function but it drops width items
;from a list.You will have to make that
(color-indexes (r-rest l width)))))
;put this where you want the color
(list-ref (list-ref (image->color-list) (sub1 x)))(sub1 y))
答案 2 :(得分:0)
如果您使用2htdp/image
,则必须使用image->color-list
。但是,该列表不会为您提供x
和y
坐标的颜色。您需要通过考虑图像的宽度来计算列表中像素的位置。它返回的颜色列表跨越行,从顶部开始,从左上角到右上角,然后是下一行,从左到右,依此类推。
该(x,y)
列表中的(零索引)位置为x + width*y
,或者:
(+ x (* width y))
在上下文中:
;; get-pixel : Image Number Number -> Color
(define (get-pixel img x y)
(list-ref (image->color-list img)
(+ x (* (image-width img) y))))