Python怎么实现修改图片分辨率
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,小编给大家分享一下Python怎么实现修改图片分辨率,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!环境依赖ffmpeg环境安装,可以参考:windows ffmpeg安装部署ffmp
千家信息网最后更新 2025年02月16日Python怎么实现修改图片分辨率
小编给大家分享一下Python怎么实现修改图片分辨率,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
环境依赖
ffmpeg环境安装,可以参考:windows ffmpeg安装部署
ffmpy安装:
pip install ffmpy -i https://pypi.douban.com/simple
代码
不废话,上代码。
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/12/11 21:43# @Author : 剑客阿良_ALiang# @Site :# @File : image_tool.py import osimport uuidfrom ffmpy import FFmpeg # 调整图片大小def change_size(image_path: str, output_dir: str, width: int, height: int): ext = os.path.basename(image_path).strip().split('.')[-1] if ext not in ['png', 'jpg']: raise Exception('format error') _result_path = os.path.join( output_dir, '{}.{}'.format( uuid.uuid1().hex, ext)) ff = FFmpeg(inputs={'{}'.format(image_path): None}, outputs={ _result_path: '-vf scale={}:{}'.format(width, height)}) print(ff.cmd) ff.run() return _result_path
代码说明:
1、change_size方法入参分别为:图片地址、输出目录地址、需要修改的宽、需要修改的高。
2、验证的图片格式只有png、jpg,如需添加自行添加。
3、为了避免输出文件文件名重复,使用uuid作为文件名。
验证一下
准备的图片如下:
执行代码:
if __name__ == '__main__': print(change_size('data/1234.jpg', 'data/', 1280, 720))
执行结果:
E:\ProgramData\Anaconda3\envs\pytorch\python.exe C:/Users/yi/PycharmProjects/test/image_tool.pyffmpeg -i data/123.jpg -vf scale=1280:720 data/709ad7cc5a8a11ec82c82c4d54eea02b.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 'data/123.jpg': Duration: 00:00:00.04, start: 0.000000, bitrate: 170762 kb/s Stream #0:0: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 1920x1080, 25 tbr, 25 tbn, 25 tbcStream mapping: Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))Press [q] to stop, [?] for help[swscaler @ 000001d3c41b6c00] deprecated pixel format used, make sure you did set range correctlyOutput #0, image2, to 'data/709ad7cc5a8a11ec82c82c4d54eea02b.jpg': Metadata: encoder : Lavf58.45.100 Stream #0:0: Video: mjpeg, yuvj444p(pc), 1280x720, 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=7.8 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.28x video:106kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknowndata/709ad7cc5a8a11ec82c82c4d54eea02b.jpg
效果图片:
看完了这篇文章,相信你对"Python怎么实现修改图片分辨率"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
图片
代码
文件
分辨率
地址
文件名
环境
篇文章
输出
验证
上代
剑客
只有
大小
完了
废话
效果
方法
更多
格式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
宜昌机器人rpa软件开发公司
全球网络安全前十企业排名
立普妥药物合成数据库
数据库表关系用什么软件画
黑河软件开发平台
数据库数据模型有哪四种
怎样确认网络安全
甘肃居家智慧养老软件开发
数据库字段怎么实现加减
服务器必须用2008系统吗
如何登陆svn服务器
怎样删除app数据库
网络安全体系考试题
高并发数据库生成id
网页服务器的数据库
找到诈骗软件开发者管用吗
苹果11激活过程连接不了服务器
淮南软件开发定制公司
账号管理器显示和谷歌服务器
家庭教育与网络安全直播江西
河南app软件开发多少钱
违反网络安全法的责任追究
6.72折腾服务器V10魔改版
单机游戏连接数据库
服务器hd卡
江苏陈彬网络安全
天龙八部单机版服务器
社区开展网络安全知识活动
护苗网络安全观后感250字
海康威视与服务器通信失败