我正在尝试创建新的照片,每一张都是从24张照片的列表中并排拍摄的照片。我最终想要每一对组合(共276对)在一张新照片上。不过,目前我只是想让程序把两张照片粘贴到一张新照片上,但我得到了一个错误。代码和错误如下:
from PIL import Image
import os
import itertools
plist = os.listdir('image_resize')
for p in plist[:]:
if not(p.endswith('.png')):
plist.remove(p)
print(plist)
os.chdir('C:\Python35-32\Scripts\image_resize')
def get_pics(x,y):
w = os.getcwd()
op = plist[x]
op2 = plist[y]
pic = Image.open(os.path.join(w,op))
pic2 = Image.open(os.path.join(w,op2))
pic.copy()
pic2.copy()
new_image = Image.new("RGB", (1280,400))
new_image.save('conjoined_pics', format='PNG')
pic.paste(Image.open('new_image'), (20,400,620,0))
pic2.paste(Image.open('new_image'), (660,400,1260,0))
get_pics(0,1)
#def get_permutations():
#newlist = list(itertools.permutations(plist, 2))
#print (newlist)
以下是错误消息:
^{pr2}$
错误消息准确地说明了错误所在:您试图打开的图像文件不存在。我将尝试在使用
os.path.join(w, op)
行之前打印它的值,看看它是否有意义。在我建议你使用两个全局变量来代替文件名。在
编辑:我不认为这与处理图像有关。这可能是一些简单的错误,你只是没有注意到。在您的函数中尝试如下操作:
我再次查看错误消息,似乎您必须在代码的
"os.path.join(...)"
部分加上引号。你问题中的代码就是你正在运行的代码吗?在编辑:建议编辑
^{pr2}$为了好玩,也许为了测试您的Python,您可以使用GNU parallel和ImageMagick在一个一行程序中并行地生成所有图像(假设您的24个图像名为“image??”)????。巴布亚新几内亚”
如果您想了解它是如何工作的,请在命令行上的
^{pr2}$dry-run
后添加parallel
,它将显示它将执行的操作:相关问题 更多 >
编程相关推荐