所以我有这个代码
from PIL import Image
def get_concat_h_cut(im1, im2):
dst = Image.new('RGB', (im1.width + im2.width,
min(im1.height, im2.height)))
dst.paste(im1, (0, 0))
dst.paste(im2, (im1.width, 0))
return dst
def get_concat_v_cut(im1, im2):
dst = Image.new(
'RGB', (min(im1.width, im2.width), im1.height + im2.height))
dst.paste(im1, (0, 0))
dst.paste(im2, (0, im1.height))
return dst
FileA = Image.open("dog.jpg")
FileB = Image.open("cat.jpg")
get_concat_v_cut(FileA, FileB).save('pillow_concat_v_cut.jpg')
但是由于猫图像的分辨率很小,程序调整了整个图像的大小,因此我看不到大部分狗图像。我该如何制作才能同时看到猫和狗?
猫图片:https://i.ibb.co/j58TRnt/cat.jpg
狗图片:https://i.ibb.co/d6jdsBC/dog.jpg
程序生成的图像:https://i.ibb.co/WkDdPTD/pillow-concat-v-cut.jpg
感谢您的帮助。
答案 0 :(得分:1)
如果您希望保持狗图像的宽度不变,这将填充输出图像上猫图像右侧的黑色空间,您可以在 concat 函数中将 Image.new 的大小参数更改为
(max(im1.width, im2.width), im1.height+im2.height)
同样适用于您的 h-cut concat 函数,仅适用于高度参数。
如果您尝试将它们缩放到相同的大小,您可以对要缩放的任何一个调用 .resize() 方法,并将其他图像的高度和宽度变量作为大小参数传递给它。>
您可以在此处找到更多信息: https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.resize