利用python转换图片格式
生活随笔
收集整理的這篇文章主要介紹了
利用python转换图片格式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
常見的圖像任務(wù)通常需要把照片統(tǒng)一成相同的格式,所以此文章正是為了統(tǒng)一格式而生,常見的主要有cv2和PIL.Image的相關(guān)操作,照片格式是一串?dāng)?shù)字加上后綴名
工具一:cv2
pip install opencv-python之后就可以
import cv21.1 導(dǎo)包
import osimport cv2import sysimport numpy as np1.2 路徑設(shè)置
path = r"C:\\Users\\86775\\test_change\\" path2 = r"C:\\Users\\86775\\test_change2\\"1.3 改格式重新傳
1.3.1 用os.path.splitext()來判斷
images = os.listdir(path) for i in os.listdir(path):print(os.path.splitext(i)) # ('34474006827920603', '.png')if os.path.splitext(i)[1] == ".jpeg":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".jpeg", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".png":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".png", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".JPG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".JPG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".PNG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".PNG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif os.path.splitext(i)[1] == ".jpg":img = cv2.imread(path + i)# print(img)cv2.imwrite(path2 + i, img)1.3.2 用split()來判斷
images = os.listdir(path) for i in os.listdir(path):print(i.split("."))if i.split(".")[1] == "jpeg":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".jpeg", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "png":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".png", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "JPG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".JPG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "PNG":img = cv2.imread(path + i)# print(img)new_imagename = i.replace(".PNG", ".jpg")cv2.imwrite(path2 + new_imagename, img)elif i.split(".")[1] == "jpg":img = cv2.imread(path + i)# print(img)cv2.imwrite(path2 + i, img)1.4 查看結(jié)果
?
工具二:pillow
pip install pillow之后就可以
from PIL import Image2.1 導(dǎo)包
import osfrom PIL import Image2.2 路徑設(shè)置
path = r"C:\\Users\\86775\\test_change\\" path2 = r"C:\\Users\\86775\\test_change2\\"2.3 寫格式修改函數(shù)
RGBA意思是紅色,綠色,藍(lán)色,Alpha的色彩空間,Alpha指透明度,而JPG不支持透明度。
所以其他格式不轉(zhuǎn)jpg可以直接保存為.png格式,轉(zhuǎn)jpg就需要丟棄Alpha
img = img.convert(“RGB”),轉(zhuǎn)換成RGB,保證和jpg格式的通道數(shù)相同,也算一種圖片類型變換的防報(bào)錯(cuò)機(jī)制
2.4 開始轉(zhuǎn)換
images = os.listdir(path1) for i in images:print(i)if os.path.splitext(i)[1] == ".jpeg":source = path1 + "\\" + str(i.split(".")[0]) + ".jpeg"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"jpeg2jpg(source, target)elif os.path.splitext(i)[1] == ".png":source = path1 + "\\" + str(i.split(".")[0]) + ".png"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"png2jpg(source, target)elif os.path.splitext(i)[1] == ".JPG":source = path1 + "\\" + str(i.split(".")[0]) + ".JPG"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"JPG2jpg(source, target)elif os.path.splitext(i)[1] == ".PNG":source = path1 + "\\" + str(i.split(".")[0]) + ".PNG"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"PNG2jpg(source, target)elif os.path.splitext(i)[1] == ".jpg":source = path1 + "\\" + str(i.split(".")[0]) + ".jpg"target = path2 + "\\" + str(i.split(".")[0]) + ".jpg"jpg2jpg(source, target)2.5 查看結(jié)果
?
總結(jié)
以上是生活随笔為你收集整理的利用python转换图片格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习:sklearn数据集与机器学习
- 下一篇: websocket python爬虫_p