绘制上下文和位图

时间:2016-05-23 08:36:36

标签: bitmap racket

我一直在尝试创建一个用户应用程序来绘制tileset位图,所以有点像这样(多层fg颜色/ alpha,bg颜色/ alpha和字符):

enter image description here

创建位图不是问题,但现在我正处于我想要编辑和修改它的部分。我对位图输出感到满意,但是我注意到一旦我无法再对其进行更改,我已经打印了一个位图

enter image description here

我已经检查了bitmap%bitmap-dc%dc%的文档,但如果是故意的话,我找不到任何信息。我错过了中间的一步吗?

更新:我注意到如果我在绘制后将位图复制到另一个位图,那么更改将在新位图中显示,但旧位图不会

enter image description here

以下是示例代码

#lang racket

(require racket/draw)

(define bmp1 (make-bitmap 128 128))
(define bdc1 (new bitmap-dc% [bitmap bmp1]))
(send bdc1 set-pen "yellow" 1 'solid)
(send bdc1 set-brush "black" 'solid)
(send bdc1 draw-rectangle 0 0 128 128)
(send bdc1 draw-rectangle 0 0 64 64)
(send bdc1 draw-line 0 0 128 128)
bmp1
(send bdc1 set-pen "red" 4 'solid)
(send bdc1 draw-line 128 0 0 128)
bmp1

(define bmp2 (make-bitmap 128 128))
(define bdc2 (new bitmap-dc% [bitmap bmp2]))
(define d (send bdc2 draw-bitmap bmp1 0 0))
bmp2
bmp1

1 个答案:

答案 0 :(得分:1)

我90%确定您在DrRacket中看到了错误的结果。 我几乎可以肯定这个bug已经修好了。

https://www.cs.utah.edu/plt/snapshots/

我可以谈谈您从上面的链接安装开发版本吗?

有问题的错误:           https://github.com/racket/drracket/commit/2d3205571cb4d1d38335c4bac84810e72777c769