拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Python 实作图片裁剪(附代码) | Python工具

Python 实作图片裁剪(附代码) | Python工具

白鹭 - 2022-01-26 2025 0 0

前言

本文提供将图片按照自定义尺寸进行裁剪的工具方法,一如既往的实用主义,

环境依赖

ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部署_阿良的博客-CSDN博客

本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中,

ffmpy安装:

代码

不废话了,上代码,

#!/user/bin/env python
# coding=utf-8
"""
@project : csdn
@author  : 剑客阿良_ALiang
@file   : cut_out_pic_tool.py
@ide    : PyCharm
@time   : 2022-01-20 10:38:53
"""
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、截取的图片宽高不能超过图片大小,

验证一下

准备的图片

file

执行结果

结果图片

file

总结

这几天好忙,没啥好总结的,

分享:一次次轮回,一次次抉择,一次次生死,对这尘世多少有了几分疲惫和厌倦,然而责任已经成为习惯,就算早已堪透,也不是那么容易就能放得下,——《花千骨》

如果本文对你有帮助的话,点个赞吧,谢谢!

file

本人CSDN主页地址:剑客阿良_ALiang的主页

一起学习,一起进步,

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *