PIL透明度似乎

2024-05-13 15:12:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使图像背景中的黑色像素透明。为此,我编写了下面的函数。然后,我将图像(中间一辆车被黑色像素包围)覆盖在自己的一个副本上,然后慢慢移动第一个。我原以为第一张图片会在不显示矩形边界的情况下显示下面的副本,因为那部分应该是透明的。然而,我没有得到预期的效果。有人知道我错过了什么吗?你知道吗

def makeImageTransparent(img):
  img = img.convert("RGBA")
  datas = img.getdata()
  newData = []
  ii = 0
  for item in datas:
    if item[0] == 0 and item[1] == 0 and item[2] == 0:
        newData.append((0, 0, 0, 0))
        ii = ii + 1
    else:
        newData.append(item)
  print str(ii)
  img.putdata(newData)
  return img

Tags: and函数图像img副本图片像素item
1条回答
网友
1楼 · 发布于 2024-05-13 15:12:50

我不知道如何使透明度工作,所以我只是创建了自己的粘贴方法,更新了我直接粘贴到的图像字节,这得到了我想要的效果。你知道吗

def pasteImage(img, bigim, posn):
  pixdata = img.load()
  width, height = img.size
  mainpixdata = bigim.load()
  for y in xrange(height):
    for x in xrange(width):
        if pixdata[x, y] != (0, 0, 0, 0):
            mainpixdata[x+posn[0], y+posn[1]] = pixdata[x,y]

相关问题 更多 >