0
因此,我需要拍摄一张我在PIL中制作的图像,并将其转换为可在绘图中显示的像素图。将PIL图像转换为带有alpha的GTK像素图
如何从PIL转换为pixmap并保持图像alpha?
目前,我有这个代码写的:
def gfx_draw_tem2(self, r, x, y):
#im = Image.open("TEM/TEM cropped.png")
im = Image.new("RGBA", (r*2,r*2), (255, 255, 255, 255))
draw = ImageDraw.Draw(im)
for i in range(0,r*2):
for j in range(0,r*2):
if(self.in_circle(i,j,r)):
draw.point((i,j), fill=(100,50,75,50)) #alpha at 255 for test2.png
im.save("test.png")
im_data = im.tostring()
pixbuf = gdk.pixbuf_new_from_data(im_data, gdk.COLORSPACE_RGB, True, 8, im.size[0], im.size[1], 4*im.size[0])
pixmap2, mask = pixbuf.render_pixmap_and_mask()
self.pixmap.draw_drawable(self.white_gc, pixmap2, 0,0,x-r,y-r,-1,-1)
下面是我从im.save创建的映像( “test.png”):
http://imgur.com/43spsBG,lqowten#0
通知的第一张照片有一个阿尔法255(全)和秒有一个阿尔法50.
但是,当我将图像转换为与我当前的代码的pixmap我失去了透明af FECT。
感谢您的帮助,
伊恩
编辑:我有更多的测试范围缩小一点点。将pixbuf转换为像素图时,我失去了图像的alpha值。