Python PIL 裁剪文件夹中的所有图像

标签 python image python-imaging-library

目前我正在尝试裁剪以下地址下文件夹内的所有图像:C:\\Users\\xie\\Desktop\\tiff\\Bmp然后将它们重新保存到同一个文件夹中。下面是我试图试验的代码,两者都运行没有错误但什么也不做。另请注意,我使用 Windows 作为平台。
代码 1:

from PIL import Image
import os.path, sys

path = "C:\\Users\\xie\\Desktop\\tiff\\Bmp"
dirs = os.listdir(path)

def crop():
    for item in dirs:
        if os.path.isfile(path+item):
            im = Image.open(path+item)
            f, e = os.path.splitext(path+item)
            imCrop = im.crop(30, 10, 1024, 1004)
            imCrop.save(f + 'Cropped.bmp', "BMP", quality=100)

crop()
代码 2:
for f in os.listdir("C:\\Users\\xie\\Desktop\\tiff\\Bmp"):
    for f in ("C:\\Users\\xie\\Desktop\\tiff\\Bmp"):
        if f.endswith('.bmp'):
            print (f, end=" ")
            i = Image.open(f)
            area = (30, 10, 1024, 1004)
            cropped_i = i.crop(area)
            cropped_i.show()
            cropped_i.save('Cropped{}.bmp', "BMP", quality=100, optimize=True)
谢谢,非常感谢任何帮助或建议!

最佳答案

代码 1:更正
这是您更正的代码,您几乎是对的,您必须正确加入路径,在您的代码中您没有添加分隔符 /路径和文件名之间。通过使用 os.path.join你可以组合一个 directory path和一个 filename .
此外,crop 采用 4 个元组,而不是 4 个参数。

from PIL import Image
import os.path, sys

path = "C:\\Users\\xie\\Desktop\\tiff\\Bmp"
dirs = os.listdir(path)

def crop():
    for item in dirs:
        fullpath = os.path.join(path,item)         #corrected
        if os.path.isfile(fullpath):
            im = Image.open(fullpath)
            f, e = os.path.splitext(fullpath)
            imCrop = im.crop((30, 10, 1024, 1004)) #corrected
            imCrop.save(f + 'Cropped.bmp', "BMP", quality=100)

crop()

关于Python PIL 裁剪文件夹中的所有图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47785918/

相关文章:

python - 使用OpenCV进行对象识别

python - 将 Pandas 时间戳插入 Mongodb

jquery - 悬停缩略图时,文本会顺利显示。这是一个 jQuery 插件还是只是 CSS?

python - 将 svg 文件导入 matplotlib 图

python - build_attrs() 得到了一个意外的关键字参数 'type'

javascript - 使用 JavaScript 通过鼠标悬停放大图像

jquery - 在 div 中按比例调整图像 - 图像永远不应该被剪裁

python - 检查背景图像顶部具有透明度的文本图像之间的可见性(对比度?)

python - 如何提取彩色边框内的图像区域?

javascript - 如何通过 Django Channels 实现视频通话?