H 正如我的名字所暗示的,我是编码新手,正在使用 Python,并且非常感谢使用 Python Imaging Library 完成任务的一些帮助。
我有 2 个位图图像。第一个图像是彩色绘画,第二个仅包含黑白像素...我想开发一个函数,该函数接受两个图像作为参数来创建一个新图像,该图像本质上是第一个图像(绘画),与只有第二张图像中的黑色像素被覆盖在它上面。第二个图像比第一个小,被覆盖的像素需要位于新图像的中心。
我已经安装了 PIL 并且已经能够使用以下代码使用以下代码成功显示第一张图像:
import PIL
from PIL import Image
painting = Image.open("painting.bmp")
painting.show()
我已排除使用 ImageChops 模块中的 .blend 和 .composite 函数或 .multiply 函数,因为图像大小不同。
我相信我需要使用 .getpixel / .putpixel 或 .getdata / .putdata 来查找由元组 (0,0,0) 标识的黑色像素。此外,我认为 PIL 的裁剪和粘贴功能应该有助于从绘画中找出“区域”以用黑色像素覆盖,并且可以帮助将黑色像素居中在绘画上?
所以我在看这样的东西也许......
def overwrite_black(image1, image2):
image_1 = Image.open('painting.bmp')
image_2 = Image.open('black_white.bmp')
pixels = list(image_2.getdata())
for y in xrange(image_2.size[1]):
for x in xrange(image_2.size[0]):
if pixels ==(o,o,o):
image_2.putdata(pixels((x,y),(0,0,0)))
image_2.save('painted.bmp')
再说一次,我是新手,所以对我放轻松,任何帮助将不胜感激。
干杯。