我正在使用 python 和 PIL 来操作两个图像。我已经通过使用 getpixel 和 putpixel 成功地将一个图像放置到另一个图像上。我们不允许使用 pil 提供的任何复制/粘贴功能(因此有 getpixel 和 putpixel)。现在,我基本上是在尝试将第一张图像(比如说模板图像)放置到目标图像的用户定义位置上。我知道如何接受用户输入,但我不知道将这些变量放在哪里以使模板图像出现在用户的坐标处。我基本上想让这些坐标成为模板图像的新原点。我尝试使用坐标作为 putpixel x 和 y,但我认为这只是在用户坐标处将像素堆叠在一起。我敢肯定这是我想念的简单的东西。任何帮助,将不胜感激。
from PIL import Image
import sys
print "Image Manipulation\n"
tempImg = Image.open("template.png")
destImg = Image.open("destination.jpg")
tempWidth,tempHeight = tempImg.size
destWidth,destHeight = destImg.size
if tempWidth >= destWidth and tempHeight >= destHeight:
print "Error! The template image is larger than the destination image."
sys.exit()
else:
print "The template image width and height: ",tempWidth,tempHeight
print "The destination image width and height: ",destWidth,destHeight
x_loc = raw_input("Enter the X coordinate: ")
y_loc = raw_input("Enter the Y coordinate: ")
x_loc = int(x_loc) # <--where do I put these?
y_loc = int(y_loc)
tempImg = tempImg.convert("RGBA")
destImg = destImg.convert("RGBA")
img = tempImg.load()
for x in xrange(tempWidth):
for y in xrange(tempHeight):
if img[x,y][1] > img[x,y][0] + img[x,y][2]:
img[x,y] = (255,255,255,0)
else:
destImg.putpixel((x,y),tempImg.getpixel((x,y)))
destImg.show()