前言:Hello大家好,我是小哥谈。本节课就手把手教你如何把.png图像保存为.jpg图像,希望大家学习之后能够有所收获~!
目录
1.技术介绍
2.实现代码
如果在电脑某个磁盘下的某个文件夹中有多张以.png格式保存的图像,现在要把这些.png格式的图像保存为.jpg格式的图像,那么需要如何操作呢?有的读者朋友会提议采用“手动模式”,即把该文件夹中的每一幅.png格式的图像手动修改为.jpg格式的图像。这种处理模式虽然有效,但是费时费力;如果该文件夹中既有.png格式的图像,又有.jpg格式的图像,采用“手动模式”的话,难免会有些捉襟见肘。本技术的目的就是如何利用Python OpenCV既有效,又省时省力地解决这个问题。
想要利用Python OpenCV把文件夹中的.png格式的图像保存为.jpg格式的图像,首先要遍历这个文件夹中的所有图像文件。因此,需要借助os模块中的listdir()方法,该方法用于返回指定路径下的文件名和文件夹名的列表。
listdir()方法的语法格式如下所示:
os.listdir(path)
参数说明:
path:指的是被指定的路径,例如“E:\\”、“E:\\images\\”等。
本技术的目的是把指定文件夹中的.png格式的图像保存为.jpg格式的图像,这里有个关键词:“保存”。那么,如何保存图像呢?
OpenCV模块提供了用于保存图像的imwrite()方法,该方法的语法格式如下:
cv2.imwrite(filename, img)
参数说明:
filename:保存图像时所用的完整路径。
img:要保存的图像。
程序把指定文件夹中的.png图像保存为.jpg图像后,其中的.png图像仍然在这个文件夹中。为了删除这些.png图像,需要借助os模块中的remove()方法,删除这个文件夹中的.png图像。
remove()方法的语法格式如下:
os.remove(path)
参数说明:
path:指的是要被删除的文件的完整路径名。例如,删除E盘下的images文件夹中的1.png,那么path的值为" E:\\images\\1.png "(双引号是英文格式的)。
具体的实现代码如下所示:
import os
import cv2
path = "E:\\images\\" # 声明一个路径,即E盘下的、名为images文件夹
for filename in os.listdir(path): # 遍历E盘下的、名为images文件夹中的各个文件
if os.path.splitext(filename)[1] == ".png": # 如果图像是以.png格式保存的话
img = cv2.imread(path + filename) # 根据拼接的路径读取图片
newfilename = filename.replace(".png", ".jpg") # 把.png图像修改为.jpg图像
cv2.imwrite(path + newfilename, img) # 以.jpg格式保存图像
os.remove(path + filename) # 删除当前文件夹中以.png格式保存的图像
print("已经把当前文件夹中的.png图像保存为.jpg图像!")