Python修改图片分辨率(附代码) | Python工具
目录
前言
环境依赖
代码
总结
前言
本文提供将图片分辨率调整的python代码,一如既往的实用主义。
环境依赖
ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部署_阿良的博客-CSDN博客
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.pyimport os
import uuid
from 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.py
ffmpeg -i data/123.jpg -vf scale=1280:720 data/709ad7cc5a8a11ec82c82c4d54eea02b.jpg
ffmpeg version n4.3.1-20-g8a2acdc6da Copyright (c) 2000-2020 the FFmpeg developersbuilt with gcc 9.3-win32 (GCC) 20200320configuration: --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=-lgomplibavutil 56. 51.100 / 56. 51.100libavcodec 58. 91.100 / 58. 91.100libavformat 58. 45.100 / 58. 45.100libavdevice 58. 10.100 / 58. 10.100libavfilter 7. 85.100 / 7. 85.100libswscale 5. 7.100 / 5. 7.100libswresample 3. 7.100 / 3. 7.100libpostproc 55. 7.100 / 55. 7.100
Input #0, image2, from 'data/123.jpg':Duration: 00:00:00.04, start: 0.000000, bitrate: 170762 kb/sStream #0:0: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 1920x1080, 25 tbr, 25 tbn, 25 tbc
Stream 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 correctly
Output #0, image2, to 'data/709ad7cc5a8a11ec82c82c4d54eea02b.jpg':Metadata:encoder : Lavf58.45.100Stream #0:0: Video: mjpeg, yuvj444p(pc), 1280x720, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbcMetadata:encoder : Lavc58.91.100 mjpegSide data:cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 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: unknown
data/709ad7cc5a8a11ec82c82c4d54eea02b.jpg
效果图片:
OK,没什么问题。
总结
没啥好总结的。
分享:
Perhaps one day you muster the courage, to make a clean breast of everything in the heart only ended up to let others see the joke, because they did not understand you to say what, also don't know why do you think things are so important, say, almost cried out. I think the worst thing in the world, than with full of heart and secret, but no one can tell, but no one can understand!
——《肖申克的救赎》
如果本文对你有作用的话,请点个赞吧,谢谢!
Python修改图片分辨率(附代码) | Python工具相关推荐
- Python 修改图片分辨率任意数保存图片
访问百度查看了百度图片地址https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png 查看分辨率为540*258 随便修改为 ...
- python 修改图片尺寸_用Python更改图片尺寸大小
1.PIL包推荐Pillow. 2.源码:#encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 import os ...
- Java修改图片分辨率(附代码) | Java工具类
目录 前言 环境依赖 代码 总结 前言 本文提供可以修改图片分辨率的java工具类,实用主义的狂欢. 环境依赖 添加必要的一些maven依赖. <dependency><groupI ...
- Python实现修改图片分辨率(含完整源码)
Python实现修改图片分辨率(含完整源码) 在我们日常的工作和学习中,经常需要处理图片.有时候,我们可能需要修改图片的分辨率,以适应不同的需求.本文将介绍如何使用Python来实现修改图片的分辨率, ...
- 如何在Python中获取图片分辨率?——Python实现获取图片分辨率的代码及详解。
如何在Python中获取图片分辨率?--Python实现获取图片分辨率的代码及详解. 在进行图片处理或者图片分析的时候,获取图片的分辨率信息是必不可少的.Python提供了许多库可以方便地获取图片的分 ...
- python批量修改图片分辨率
python批量修改图片分辨率 import cv2 import osif __name__ == '__main__':curDir = os.curdir # 获取当前执行python文件的文件 ...
- python图像处理——图片区域颜色替换小工具
python图像处理--图片区域颜色替换小工具 使用场景 图片区域颜色替换小工具使用python开发,可用于选取图片相同颜色的区域,可设定选择精度,可自由选择颜色,将区域的颜色进行替换.可使用橡皮擦工 ...
- python提高图片分辨率_python 获取图片分辨率的方法
python 获取图片分辨率的方法 pil版: from PIL import Image filename = r'E:\data\yangben\0.jpg' img = Image.open(f ...
- Python科学绘图实例附代码
Python绘图精简实例附代码 作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 Python绘图精简实例附代 ...
- Python修改图片格式以及相对应labelme标注的Json文件
Python修改图片格式以及相对应labelme标注的Json文件 前言 前提条件 相关介绍 实验环境 Python修改图片格式以及相对应labelme标注的Json文件 代码实现 输出结果 前言 本 ...
最新文章
- 谈谈架构的本质和架构分类
- Linux内核分析 - 网络[六]:网桥
- 阿里云accessKey如何创建?~ 2015.08.25
- 【Rollo的Python之路】Scrapy Selector选择器的学习
- 【强烈推荐】最好理解的LSTM与GRU教程
- python下 help()使用方法
- 如何通过apk获得包名及Activiy 名称
- 相对于通过木马传播方式获得的C++用户数据
- linux source 子shell,Linux------source
- textarea 字体限制,超出部分不显示并及时显示还剩字体个数
- 【Python数据分析】数据预处理2——数据集成
- SSH连接时出现Host key verification failed的原因及解决方法
- 设计网际网络的地址标准
- Linux学习(4)-文件颜色,绿色,蓝色,白色,红色等代表的意义
- NetLimiter(网络限速-对付流氓上传)
- 小米手环6解决天气未同步问题
- windows文件共享客户端的一些事——samba文件共享
- 华中科技大学2021计算机学院,2021年华中科技大学计算机考研科目
- Android第三方集成之一键分享ShareSDK的使用eclipse篇 #CSDN博文精选# #IT# #第三方集成# #安卓#
- linux的java环境配置,jdk,tomcat,redis,maven,mysql