吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1099|回复: 4
收起左侧

[学习记录] 利用python实现图片裁剪

  [复制链接]
zhzhx 发表于 2023-2-15 15:23
一、 安装PIL库如果此前没有安装过PIL库,在python3环境下,命令行输入 pip install pillow 即可安装完成
[Python] 纯文本查看 复制代码
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

二、ffmpy安装
[Python] 纯文本查看 复制代码
pip install ffmpy -i https://pypi.douban.com/simple
[Python] 纯文本查看 复制代码
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\huyi\Desktop\231.jpg', r'C:\Users\huyi\Desktop', (1000, 1000), (1000, 1000))

代码说明:1、cut_out_pic方法参数分别为,图片地址、输出目录地址、起始像素点位置、需要裁剪的宽高。2、做了简单的图片格式校验,如需添加,可以自己看着来。3、最终图片名使用uuid避免重复。4、截取的图片宽高不能超过图片大小。

免费评分

参与人数 2吾爱币 +2 收起 理由
YuanFang0w0 + 1 我很赞同!
zhaoqingdz + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Pwaerm 发表于 2023-2-15 17:11
[Asm] 纯文本查看 复制代码
_screenImage = ImageGrab.grab()
_screenImage.save("temp.png", format='PNG')
_screenImage.crop(
                (x1, y1, x2, y2))



也可以裁剪。
感觉python重复功能的库太多了。
zhaoqingdz 发表于 2023-2-15 20:35
xylife 发表于 2023-2-15 20:43
9277d 发表于 2023-2-15 23:05
感谢楼主分享,学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表