python怎么调大小,python怎么改变图片大小
文章目录问题描述减小文件大小1.减小图片质量2.减小图片尺寸增加文件大小封装参考文献
问题描述
计算机编程语言调整图片文件的占用空间大小,而不是分辨率
1.jpg
图片大小为8KB
减小文件大小使用太平航运模块
点安装枕头1。减小图片质量代码
从太平航运导入操作系统导入Imagedef compress _ under _ size(图像文件,目标文件,目标大小): 压缩图片尺寸直到某一尺寸:参数图像文件:原图路径:参数目标文件:保存图片路径:param targetsize:目标大小,单位byte currentsize=OS。路径。getsize(图像文件)质量范围(99,0,-1): #压缩质量递减if currentsize targetsize:image=image。打开(图像文件)图像。save(目标文件,优化=真,质量=质量)currentsize=OS。路径。getsize(目标文件)if _ _ name _ _= _ _ main _ _ :image file= 1。jpg #图片路径targetfile=result.jpg #目标图片路径targetsize=2 * 1024 #目标图片大小compress_under_size(imagefile,targetfile,targetsize) #将图片压缩到2KB效果
注意!无法实现图片无限压缩,若文件太小,辨识度也会大大降低
2.减小图片尺寸从太平航运导入操作系统导入Imagedef image_compress(文件名,文件名,目标大小): 图像压缩:参数文件名:原图路径:param savename:保存图片路径:param targetsize:目标大小,单位为字节 图像=图像。open(文件名)size=OS。路径。getsize(filename)if size=targetsize:返回宽度,高度=图像。size num=(targetsize/size)* 0.5 width,height=round(width * num),round(height * num)图像。调整大小((宽度,高度)).save(savename)if _ _ name _ _= _ _ main _ _ :filename= 1。jpg savename=结果。jpg targetsize=2 * 1024 image _ compress(文件名,文件名,目标大小)效果
增加文件大小Windows操作系统操作系统
通过子过程模块调用系统命令文件系统管理文件创建新文件名文件大小创建指定大小的文件
再用复制/b命令合并数据到图片上
导入OS导入时间导入子进程映像文件= 1。jpg #图片路径targetfile=result.jpg #目标图片路径targetsize=10 * 1024 * 1024 #目标图片大小tempfile=str(int(time。时间()))#临时文件路径tempsize=str(targetsize-OS。路径。getsize(图像文件))#临时文件大小subprocess.run([fsutil , file , new ,tempfile,tempsize]) #创建临时文件subprocess.run([copy/b , {}/b {}/b .format(imagefile,tempfile),targetfile],shell=True) #合并生成新图片os.remove(临时文件)Linux
通过子过程模块调用系统命令法乐酯-l文件大小文件名创建指定大小的文件
再用猫命令合并数据到图片上
导入OS导入时间导入子进程映像文件= 1。jpg #图片路径targetfile=result.jpg #目标图片路径targetsize=10 * 1024 * 1024 #目标图片大小tempfile=str(int(time。时间()))#临时文件路径tempsize=str(targetsize-OS。路径。getsize(图像文件))#临时文件大小subprocess.run([fallocate ,-l ,tempsize,tempfile]) #创建临时文件subprocess.run(cat {} {} {} ).format(imagefile,tempfile,targetfile),shell=True) #合并生成新图片os.remove(临时文件)效果
图片的分辨率没变
封装导入旧历法导入时间导入平台从太平航运导入子流程导入imagedef resize _ picture _ filesize(图像文件,目标文件,目标大小): 调整图片文件大小:参数图像文件:原图路径:参数目标文件:保存图片路径:param targetsize:目标文件大小,单位byte currentsize=OS。路径。getsize(图像文件)#原图文件大小如果当前大小目标大小:#需要缩小对于质量范围(99,0,-1): #压缩质量递减if currentsize targetsize:image=image。打开(图像文件)图像。save(目标文件,优化=真,质量=质量)currentsize=OS。路径。getsize(目标文件)else:#需要放大系统=平台。system()tempfile=str(int(time。时间()))#临时文件路径tempsize=str(targetsize-OS。路径。getsize(图像文件))#临时文件大小if system== Windows :子进程。run([ fsutil , file , new ,tempfile,tempsize]) #创建临时文件subprocess.run([copy/b , {}/b {}/b .format(imagefile,tempfile),targetfile],shell=True) #合并生成新图片elif system== Linux :子进程。run([ fallocate ,-l ,tempsize,tempfile]) #创建临时文件subprocess.run(cat {} {} {} ).format(imagefile,tempfile,targetfile),shell=True) #合并生成新图片OS。remove(tempfile)if _ _ name _ _= _ _ main _ _ :image file= 1。jpg # 8KB的图片resize _ picture _ filesize(图像文件,“reduce.jpg”,2 * 1024) #缩小到2KB resize _ picture _ filesize(图像文件,“increase.jpg”,800 * 1024) #放大到800KB
参考文献计算机编程语言批量直接修改图片存储大小脚本如何安装Python magick for Python 3.5 Python magick GitHubImageMagick文档dos命令:COPYpython给png图片写入无用数据从而改变其讯息摘要5在Windows 10中创建特定大小的文件如何在LinuxPython中创建特定大小的文件执行系统命令在Linux操作系统系统上,如何将几个二进制文件复制到一个文件中?如何使用蟒蛇PIL库压缩小于限制文件大小的图片?
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。