利用python实现图片裁剪与拷贝

一、图片裁剪

1、 安装PIL库

如果此前没有安装过PIL库,在python3环境下,命令行输入 pip install pillow 即可安装完成

pip install pillow
from PIL import Image
img = Image.open('chess.png') ## 打开chess.png文件,并赋值给img
region = img.crop((0,0,50,50))## 0,0表示要裁剪的位置的左上角坐标,50,50表示右下角。
region.save('举例.png') ## 将裁剪下来的图片保存到 举例.png
2、安装ffmpy库
pip install ffmpy -i https://pypi.douban.com/simple
import os
import uuid
from ffmpy import FFmpeg
  
  
# 图片裁剪
def cut_out_pic(image_path: str, output_dir: str, start_pix: tuple, size: tuple):
    ext = os.path.basename(image_path).strip().split('.')[-1]
    if ext not in ['png', 'jpg']:
        raise Exception('format error')
    result = os.path.join(output_dir, '{}.{}'.format(uuid.uuid1().hex, ext))
    ff = FFmpeg(inputs={image_path: None},
                outputs={result: '-vf crop={}:{}:{}:{} -y'.format(size[0], size[1], start_pix[0], start_pix[1])})
    print(ff.cmd)
    ff.run()
    return result
  
  
if __name__ == '__main__':
    cut_out_pic(r'C:\Users\zzz\Desktop\caijian.jpg', r'C:\Users\huyi\Desktop', (1000, 1000), (1000, 1000))

代码说明:

1、cut_out_pic方法参数分别为,图片地址、输出目录地址、起始像素点位置、需要裁剪的宽高。

2、做了简单的图片格式校验,如需添加,可以自己看着来。

3、最终图片名使用uuid避免重复。

4、截取的图片宽高不能超过图片大小。

二、图片拷贝

1、复制原图片
#打开源文件图片
file=open("1.jpg","rb")
data=file.read()
file.close()
  
#打开复制后的图片,没有则创建
new_file=open("1-副本.jpg","wb")
#将原图片内容通过二进制形式写入新的图片文件
new_file.write(data)
new_file.close()
2、批量拷贝重命名文件
file=open("1.jpg","rb")
data=file.read()
file.close()
  
for i in range(12):
    new_file=open(f"{i}月份.jpg","wb")
    new_file.write(data)
  
new_file.close()

猜你喜欢

转载自blog.csdn.net/xun527/article/details/129064463
今日推荐