批量裁剪和修改文件夹图片大小的python脚本使用说明

本脚本可用于对指定文件夹中的所有图片进行批量裁剪和缩放,并按照指定的尺寸和比例保存为新的图片。

问题描述

该脚本主要解决了以下问题:

  1. 对文件夹内的所有图片进行居中裁剪,以达到指定的高宽比。
  2. 将裁剪后的图片缩放到指定的大小。
  3. 支持不同的保存模式,可以选择将处理后的图片保存到新文件夹中(保留或不保留子目录结构),或直接在原文件夹中生成。

使用方法

  1. 确保您已经安装了Python和Pillow库。如果尚未安装,可以使用以下命令安装:
    pip install pillow
  2. 将脚本保存为image_resizer.py(或其他您喜欢的文件名)。
  3. 通过命令行(或终端)运行脚本:
    python image_resizer.py
  4. 程序会提示您输入图片文件夹位置,请输入待处理的图片文件夹位置并按回车键,例如:
    请输入图片文件夹位置(输入Q或q退出): sample_images/
  5. 如果您想要退出程序,请在提示输入图片文件夹位置的界面输入“Q”或“q”并按回车键。
  6. 程序会根据您输入的图片文件夹位置进行批量处理,并将处理后的图片保存到指定的目录中。

参数设置

以下参数可以根据需要进行修改:

  • dst_wdst_h:目标尺寸,分别表示图片的目标宽度和高度。默认值分别为580和300。
  • save_type:保存模式。有以下几种选项:

    • 1:将处理后的图片存储到新文件夹中,并保留子目录结构。
    • 2:将处理后的图片存储到一个新的文件夹,但不复制子文件夹,而是全部放到一起。
    • 3:直接在原文件夹中生成处理后的图片。
      默认值为1。

函数说明

  • is_img(ext): 判断给定的文件扩展名是否为图片格式。
  • remove_ds_store(path): 删除指定路径下的.DS_Store文件(仅适用于macOS)。
  • resize_dir_images(src_path): 遍历指定文件夹内的所有图片,并调用crop_and_resize函数进行处理。
  • crop_and_resize(fp): 对给定的图片进行裁剪和缩放。
  • get_src_path(): 获取用户输入的文件夹路径。
  • main(): 主函数,负责获取源文件夹路径,创建目标文件夹,调用resize_dir_images函数进行图片处理,最后输出处理结果。

不同参数和模式下的效果

保存模式 1

默认参数(dst_w=580,dst_h=300,save_type=1)

  • 输入文件夹结构:

  • 运行脚本后,输出文件夹结构

  • 裁剪结果:将原图按照目标比例居中剪裁,以宽度为580,高度为300进行缩放。原图比例大于目标比例时,裁剪掉原图上下部分;原图比例小于目标比例时,裁剪掉原图左右部分。

保存模式 2

自定义参数(dst_w=1000,dst_h=600,save_type=2)
将所有处理后的图片放入一个新的文件夹中。

  • 输入文件夹结构:

  • 运行脚本后,输出文件夹结构:

  • 裁剪结果:将原图按照目标比例居中剪裁,以宽度为1000,高度为600进行缩放。所有图片均存储到一个新的文件夹中,保留原始文件名。

保存模式 3

将处理后的图片保存在原文件夹中。自定义参数(dst_w=400,dst_h=400,save_type=3)

  • 输入文件夹结构:

  • 输出文件夹结构:

  • 裁剪结果:将原图按照目标比例居中剪裁,以宽度为400,高度为400进行缩放。所有图片均存储到一个原来的文件夹中,新文件后缀会加上新的像素值。

输入文件夹结构

脚本默认会处理指定文件夹下所有的子文件夹中的图片,处理后将会按照指定的存储模式进行保存。如果您的文件夹中包含了多个子文件夹,并且希望仅处理其中的某个子文件夹,可以将子文件夹的名称添加到路径中。例如,如果要仅处理名为 my_photos 的子文件夹中的图片,可以将命令修改为:

注意事项

在使用脚本进行图片处理时,有一些需要注意的事项:

  • 脚本只能处理常见的图片格式,包括 .jpg、.jpeg、.png、.bmp等格式。其他格式的文件会被忽略。
  • 处理图片时会将图片进行裁剪和缩放,如果图片的比例和目标比例差别很大,可能会导致图片变形或者出现黑边。因此,建议将目标比例设置为和原始图片比例相近的值。
  • 在脚本处理图片时,会按照默认的宽度和高度进行缩放。如果您需要将图片缩放到其他的尺寸,可以修改 dst_wdst_h 参数。
  • 在脚本处理图片时,会按照指定的存储模式保存处理后的图片。如果您需要将处理后的图片保存到其他的文件夹中,可以修改 save_type 参数。
  • 在脚本处理图片时,会先检查是否存在 .DS_Store 文件,并自动删除。这是因为在 Mac OS 系统中,该文件会记录文件夹中的图标布局等信息,可能会对处理图片产生影响。

总结

通过本脚本,您可以方便地对图片进行批量裁剪和缩放,实现快速处理大量图片的目的。根据实际需求,您可以调整参数来满足不同的图片处理要求。同时,我们还提供了多种保存模式,可以根据实际需求选择适合的模式。希望这个脚本能够帮助您更高效地进行图片处理。

附录代码

总结

chatGPT牛逼,如果要他生成markdown源文件的,则对应的AI引导词为:

image.png-57.2kB