PIL Image 没有按照我想要的方式裁剪

PIL Image not cropping the way I want

我正在尝试与彩色图像建立联系 sheet。完全去饱和至全彩, 但问题是输出是第一张裁剪图像的 10 张图像。

代码如下:

import PIL
from PIL import ImageEnhance
from PIL import Image

image =  Image.open("img.jpg").convert("RGB")

contact_sheet = PIL.Image.new(image.mode,(1920,1080))

enhancer = ImageEnhance.Color(image)

images = []
current_location = 0   
for i in range(10):
    images.append(enhancer.enhance(i/10))

for img in images:
    contact_sheet.paste(img,(current_location,0))
    image.crop((current_location,0,current_location+192,0+1080))
    current_location+=192 

imagesave = contact_sheet.save("CroppedContactSheet.jpg")

您需要将 crop 函数的结果赋给一个变量。 crop 函数未更改图像,但返回裁剪后的版本,另请参阅 the docs,使用此输入:

和这个修改后的代码:

import PIL
from PIL import ImageEnhance
from PIL import Image

image =  Image.open("img.jpg").convert("RGB")

contact_sheet = PIL.Image.new(image.mode,(1920,1080))

enhancer = ImageEnhance.Color(image)

images = []
current_location = 0   
for i in range(10):
    images.append(enhancer.enhance(i/10))

for img in images:
    # Changed here slightly, current_slice is what we want to paste into the new image
    current_slice = img.crop((current_location,0,current_location+192,0+1080))
    contact_sheet.paste(current_slice,(current_location,0))
    current_location+=192

#display(contact_sheet)
imagesave = contact_sheet.save("CroppedContactSheet.jpg")


我们得到这个输出:

图片取自http://www.desktopwallpaperhd.net/view/raptor-sample-ford-auto-cartoon-205618.html

加法:

我不知道这是不是有意为之,但从你的问题来看,你似乎想从 enhancer.enhance(0) 转到 enhancer.enhance(1),但在你提供的代码中,你是从 09/10,所以最后一个切片不是全彩,而是 90%。如果我们将代码更改为 enhancer.enhance(i/9),则输出为: