批量图片翻转、裁剪

【Python】Windows环境-Python批量图片翻转、裁剪

Windows VsCode搭建Python环境注意事项

  1. python 不要安装在含有中文的路径里

  2. 修改pip源(PowerShell里)

    a. 更新pip

    >python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
    

    b. 设置pip源(清华大学)

    >pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    
  3. vscode设置python额外库路径(避免出现pylance can not import的情况)

    {
    "python.analysis.extraPaths":"D:\\Python\\Lib\\site-packages",
    }
    

批量翻转图片

from PIL import Image
import os
def batch_flip_images(image_dir, output_dir):
    """
    批量翻转指定目录下的所有图像文件(不包含子目录),
    并将翻转后的图像保存到输出目录。
    img.transpose(Image.FLIP_LEFT_RIGHT) 水平翻转
    img.transpose(Image.FLIP_TOP_BOTTOM) 垂直翻转
    """
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    for filename in os.listdir(image_dir):
        if filename.endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tif', '.tiff')):
            img_path = os.path.join(image_dir, filename)
            img = Image.open(img_path)
            img = img.transpose(Image.FLIP_LEFT_RIGHT)  # 水平翻转
            img.save(os.path.join(output_dir, filename))

# 使用示例
image_dir = 'PATH\\image-dir\\'  # 输入图像文件夹路径
output_dir = 'PATH\\target-dir\\'  # 输出图像文件夹路径
batch_flip_images(image_dir, output_dir)

批量裁剪图片

from PIL import Image
import os
def crop_images_in_folder(image_dir, output_dir, crop_box):
  """
  裁剪指定文件夹内的所有图像
  :param image_dir: 输入文件夹路径
  :param output_dir: 输出文件夹路径
  :param crop_box: 裁剪区域的起始坐标(x, y)和终点坐标(ex, ey)
  """
  if not os.path.exists(output_dir):
    os.makedirs(output_dir)
  for filename in os.listdir(image_dir):
    if filename.endswith(('.png','.jpg', '.jpeg', '.bmp', '.tif', '.tiff')):
      img_path = os.path.join(image_dir, filename)
      img = Image.open(img_path)
      cropped_img = img.crop(crop_box)

      ##带透明度的图片使用这一句
      ##cropped_img_path = os.path.join(output_dir, filename)
      
      ##不带透明度的图片使用这一句
      cropped_img_path = os.path.join(output_dir, filename+'.png')
      
      cropped_img.save(cropped_img_path)

# 使用示例
image_dir = 'PATH\\image-dir\\'  # 输入图像文件夹路径
output_dir = 'PATH\\target-dir\\'  # 输出图像文件夹路径
crop_box = (100, 200, 300, 400) # 从图像的(99, 199)裁剪至(299, 399)
crop_images_in_folder(image_dir, output_dir, crop_box)

在VsCode里面直接调试运行Python程序就可以了。

用途:批量打印电子发票的时候,用PRT-SC截图,然后批量裁剪,再用ppt打印。

posted @   曲涛  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示