1
我是Racket和StackOverflow的新手。我正在嘗試使用IMAGE.png作爲遊標。但光標的白色部分由背景色合併。如果我將光標懸停在黑色粗線上,則白色變爲透明時,光標完全不可見。白色應該是不透明的。使用圖像文件作爲光標
首先,我用這個,它有256x256尺寸,32位深度。我使用以下代碼將尺寸調整爲16x16。
(require 2htdp/image)
(define mag IMAGE.png);; acutally, I used "insert image" in DrRacket IDE
(define new-mag (scale (/ 1 16) mag))
(save-image new-mag "mag.png")
new-mag
(image-width new-mag)
(image-height new-mag)
根據光標%的文檔,必須使用16x16位深度爲1的位圖文件來創建光標。要將位深度更改爲1,將應用以下代碼。
(require racket/gui/base)
(define bm1 (read-bitmap "mag.png"))
(define bm2 (make-object bitmap% 16 16 #t #f 1.0))
(send (send bm2 make-dc)draw-bitmap bm1 0 0)
(send bm2 save-file "mag2use.png" 'png)
(define bm (read-bitmap "mag2use.png"))
(printf "~a ~a ~a ~a~n"
(send bm get-width)
(send bm get-height)
(send bm get-depth)
(send bm is-color?))
然後我使用的位圖作爲mag2use.png光標。
(define zoom-cursor (make-object cursor% bm bm 0 0))
我是否需要使用不同的位圖掩碼? @molbdnilo – Toat
是的,除非你想使用全黑色光標。 – molbdnilo
我已經在圖像中填充了黑色並用於掩碼。圖像內部的白色變得不透明。非常感謝你@molbdnilo – Toat