python - PIL 透明度似乎不起作用

标签 python image image-processing python-imaging-library alpha-transparency

我正在尝试使图像背景中的黑色像素透明。为此,我编写了下面的函数。然后,我将图像(中间的一辆汽车,周围环绕着黑色像素)叠加在其自身的副本上,并缓慢移动第一个图像。我期望第一张图像能够显示下面的副本而不显示矩形边界,因为该部分应该是透明的。但是,我没有得到想要的效果。有谁知道我错过了什么?

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

最佳答案

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

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]

关于python - PIL 透明度似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44212409/

相关文章:

python - 在opencv python中进行模板匹配时出现TypeError

python - 如何最有效地检测 Python 中目录的文件添加/删除/重命名更改?

php - 具有固定高度的 HTML 可变图像宽度

python - rawpy.Params中output_bps的含义

ios - OpenCV 将颜色设置为前景标记像素 GC_PR_FGD

python - 在一行中分配和递增值

python - 在 pandas apply 函数中获取行的索引

html - 使用 <picture> 元素完全隐藏图像

c++ - 同时重新排序和旋转图像的高效方法

php - Javascript/HTML进行形状识别