大家将数码相机拍摄好的图片保存到电脑上之后,是无法直接查看内容的,因为它的格式为cr2或者raw。这是原始图片数据格式,要转为jpg或者png类型才可以查看。那么python中可以通过方法来将其在不损失图片像素和精度的情况下将其压缩转换格式,往下看看吧。
1.该方法需要将rawpy、imageio、os三个模块导入进来,没有的话通过命令行的pip工具下载安装一下就行,在线安装完成后马上就可以直接使用,代码如下:
import rawpy import imageio import os
2.然后定义函数并且设置两个参数,这两个参数分别表示原始图片所在命令以及无损压缩后保存的目录。函数中先调用listdir()方法获取目录下所有文件,然后用for循环迭代该对象,并且在循环之中将文件路径以及文件名给分割,代码示例如下所示:
def change(path1,path2): f = os.listdir(path1) for x in f: port = os.path.splitext(x)
3.那么在循环之中还需要去判断一下这个文件后缀名是否为指定的格式,以免将其他文件压缩成图片类型了。在if条件判断语句中定义变量保存图片旧路径表示原图,然后调用rawpy模块的方法imread()将原图片打开。
定义变量用图片保存路径加上图片名再加上表示图片类型的jpg等后缀名字符串,这样就可以得到图片压缩后的路径了。最后去用原图像调用postprocess()方法将其压缩,再使用imsave()方法把压缩后的图片保存即可,详细代码示例如下所示:
if port[1] == ’.CR2’ old = path1+x raw = rawpy.imread(pld) new = path2 + port[0] + ’jpg’ rgb = raw.postprocess() imageio.imsave(new,rgb)
以上就是关于“Python怎么无损压缩图片?Python无损压缩图片代码”的全部内容了,希望对你有所帮助。