pys60之背景透明png

用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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值