如何使用Python实现图片自定义裁剪小工具
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了如何使用Python实现图片自定义裁剪小工具,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境依赖ffmpy安装:p
千家信息网最后更新 2026年11月04日如何使用Python实现图片自定义裁剪小工具
这篇文章主要介绍了如何使用Python实现图片自定义裁剪小工具,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
环境依赖
ffmpy安装:
pip install ffmpy -i https://pypi.douban.com/simple
代码
上代码。
#!/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 osimport uuidfrom 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 resultif __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、截取的图片宽高不能超过图片大小。
验证一下
准备的图片
执行结果
C:\Users\huyi.conda\envs\python36\python.exe "C:\Program Files\JetBrains\PyCharm 2020.1.3\plugins\python\helpers\pydev\pydevconsole.py" --mode=client --port=3635import sys; print('Python %s on %s' % (sys.version, sys.platform))sys.path.extend(['D:\spyder\csdn', 'D:/spyder/csdn'])PyDev console: starting.Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)] on win32runfile('D:/spyder/csdn/cut_out_pic_tool.py', wdir='D:/spyder/csdn')ffmpeg -i C:\Users\huyi\Desktop\231.jpg -vf crop=1000:1000:1000:1000 -y C:\Users\huyi\Desktop\6e81cb7a79cb11ec96d7e454e8bf1461.jpgffmpeg version n4.3.1-20-g8a2acdc6da Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.3-win32 (GCC) 20200320 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libtwolame --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100Input #0, image2, from 'C:\Users\huyi\Desktop\231.jpg': Duration: 00:00:00.04, start: 0.000000, bitrate: 181614 kb/s Stream #0:0: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 2560x1440, 25 tbr, 25 tbn, 25 tbcStream mapping: Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))Press [q] to stop, [?] for helpOutput #0, image2, to 'C:\Users\huyi\Desktop\6e81cb7a79cb11ec96d7e454e8bf1461.jpg': Metadata: encoder : Lavf58.45.100 Stream #0:0: Video: mjpeg, yuvj444p(pc), 1000x1000, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc Metadata: encoder : Lavc58.91.100 mjpeg Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/Aframe= 1 fps=0.0 q=6.7 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.262x video:65kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown结果图片
感谢你能够认真阅读完这篇文章,希望小编分享的"如何使用Python实现图片自定义裁剪小工具"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
图片
篇文章
工具
代码
地址
结果
上代
价值
像素
兴趣
剑客
参数
同时
大小
方法
更多
朋友
格式
点位
环境
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网科技工作委员会主任
互联网科技行业发展
工业互联网科技新基建
科技类互联网
互联网医疗科技
甘肃拓世互联网科技有限公司
新华互联网科技校企合作
互联网科技公司的市场部门
中国航天科技大学国际工业互联网
深圳育鹏互联网科技有限公司招聘
徐州市互联网科技有限公司
互联网第三次科技革命特征
每天都有哪些好的互联网科技
互联网公司高科技产品
四川互联网展示科技馆设计
广州有谷有贝互联网科技有限公司
萌小萌互联网科技河南有限公司
广西科技产业互联网是什么
现代互联网科技公司
哈尔滨大商圈互联网科技有限公司
广州万易互联网科技有限公司
互联网科技保险
互联网与科技发展
互联网 科技
狮子座互联网科技
南京欣网互联网科技
互联网金融监管科技
互联网科技大奖都有哪些公司
互联网行业科技股