Python怎么实现修改图片分辨率
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,小编给大家分享一下Python怎么实现修改图片分辨率,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!环境依赖ffmpeg环境安装,可以参考:windows ffmpeg安装部署ffmp
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
服务器带内存卡有什么用
搭建远程电脑服务器需要多少带宽
网吧的服务器
用友u8 连接服务器
我的世界服务器mcbbs代发
sql如何重命名数据库
数据库发展之分析
程相然网络安全
网络安全法相关案例视频
网络安全法 一周年
江西省教育网络安全知识入口
gg对数据库的影响
uu数据库技术的主要目的是
数据库软件 哪些
lol服务器爆满怎么解决
力天无限网络技术有限公司
广易互联网络科技
opc ua服务器车间设计
软件开发团队的每一个成员都
电脑远程桌面服务器连接不上
天水煜智网络技术有限公司舆论
武汉软件开发技校
小学英语教学与网络技术
网络安全木马图片
nas服务器芯片推荐
流行的数据库技术有哪几种
网络安全意识形态ppt
常态化宣传网络安全
网络安全厂商全景图
脚本连接服务器修改文件内容