用j2me的方式尝试写了一下pys60的canvas界面,突然发现背景透明的png在canvas上显示也是有白色背景。
在参考了一个国外的pys60软件以后。发现如果想要png显示透明,那么需要自己做一张和原图大小一致的mask
(这点比j2me麻烦了很多,内存的占用也翻了一倍) ,以下是制作mask的代码:
def Crea_Maschera(imgg):
width, height = imgg.size
mask = graphics.Image.new(imgg.size, '1')
transparent_color = imgg.getpixel((0,0))[0]
for y in range(height):
line = imgg.getpixel([(x, y) for x in range(width)])
for x in range(width):
if line[x] == transparent_color: mask.point((x,y),0xff00ff)
return mask
----------------------------
调用:
img2=graphics.Image.new((176,208))
img = graphics.Image.open('z://5.png')
mask=Crea_Maschera(img)
img2.clear(0xff00ee)
mg2.blit(img,mask=mask)
canvas.blit(img2)