PIL 调整图像大小

PIL Resizes Image

所以我有这个代码

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

感谢您的帮助。

如果您希望保持狗图像的宽度相同,这将在输出图像上的猫图像右侧填充黑色 space,您可以更改 Image.new 在你的 concat 函数中 (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