如何在python上使用PIL resize或transform正确缩放图像

如何在python上使用PIL resize或transform正确缩放图像,python,image,scale,python-imaging-library,Python,Image,Scale,Python Imaging Library,我想知道你们是否知道如何用PIL方法正确缩放图像,我读过,我知道: im.调整大小(大小\元组) 但我只是不断得到我的图像不完整一旦它是规模,这是我的代码和我的照片作为结果,希望你能帮助我,谢谢 if image_size[0] < 120 and image_size[1] < 155: image = image.resize((120,155),Image.ANTIALIAS) image.save(f_out) 如果图像大小[0]

我想知道你们是否知道如何用PIL方法正确缩放图像,我读过,我知道: im.调整大小(大小\元组) 但我只是不断得到我的图像不完整一旦它是规模,这是我的代码和我的照片作为结果,希望你能帮助我,谢谢

if image_size[0] <  120 and image_size[1] <  155:
     image = image.resize((120,155),Image.ANTIALIAS)
     image.save(f_out)
如果图像大小[0]<120且图像大小[1]<155:
image=image.resize((120155),image.ANTIALIAS)
图像。保存(f_out)
代码保存了我调整大小的图像,但底部显示了一条黑线,图像被裁剪且不完整,有什么办法解决这个问题吗?提前谢谢

更新: 这是我正在使用的完整代码

def makeThumb(f_in, f_out, size=(120,155), pad=False):
    image = Image.open(f_in)
    avatar_size = (120,155)
    image_size = image.size
    method = Image.NEAREST if image_size == avatar_size else Image.ANTIALIAS

    if pad:
        thumb = image.crop( (0, 0, size[0], size[1]) )
        offset_x = max( (size[0] - image_size[0]) / 2, 0 )
        offset_y = max( (size[1] - image_size[1]) / 2, 0 )
        thumb = ImageChops.offset(thumb, offset_x, offset_y)

    else:
        if image_size[0] <  120 and image_size[1] <  155:
            image = image.resize((120,155),Image.ANTIALIAS)
            image.save(f_out)          
        else:
            thumb = ImageOps.fit(image, size, method,0.05,(0.5, 0.5))
def makeThumb(f_-in,f_-out,size=(120155),pad=False):
image=image.open(f_英寸)
头像大小=(120155)
image\u size=image.size
方法=Image.NEAREST if Image\u size==avatar\u size else Image.ANTIALIAS
如果pad:
thumb=image.crop((0,0,大小[0],大小[1]))
偏移量x=最大值((大小[0]-图像大小[0])/2,0)
偏移量y=max((大小[1]-图像大小[1])/2,0)
thumb=ImageChops.offset(thumb,offset_x,offset_y)
其他:
如果图像大小[0]<120且图像大小[1]<155:
image=image.resize((120155),image.ANTIALIAS)
图像。保存(f_out)
其他:
拇指=图像操作配合(图像、尺寸、方法,0.05,(0.5,0.5))

我怀疑你的PIL版本不好。你的代码完全正确,在你的图片上运行(从你的链接下载)适合我。也就是说:调整填充帧的大小,而不使用黑条。我会尝试重新安装(或尝试其他版本)您的PIL模块。

您的图像是否包含透明度?你能在什么地方贴个例子吗?对我很有用。你如何打开图像有什么奇怪的地方吗?它是JPEG还是别的什么?它是JPEG文件我编辑上面的代码以显示我使用的所有代码你能告诉我你使用的是哪个PIL版本吗?这样我可以试一试,我使用的是2.6.1。我使用的是Python 2.7(可能不相关)和PIL 1.1.7——但是PIL有很多编译选项,并且取决于它链接的库,因此,这可能对您没有多大帮助。请澄清版本号:2.6.1指的是,1.1.7指的是。OP正在使用pillow(虽然这在我的机器上没有什么区别-PIL和pillow都按预期调整图像大小)-怀疑潜在的jpeg库可能是原因。