亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換

 更新時(shí)間:2022年08月09日 17:20:07   作者:NiFuture  
經(jīng)常會(huì)遇到圖片格式需要轉(zhuǎn)換的情況,這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換,文中示例代碼介紹的非常詳細(xì)、實(shí)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換的具體代碼,供大家參考,具體內(nèi)容如下

碰上這樣一個(gè)情景:

我從網(wǎng)絡(luò)上下載了一張表情包圖片,存放在 MyImages 文件夾下,文件類(lèi)型為 .wepg ,為了能夠在QQ上順利發(fā)送,我需要將它轉(zhuǎn)換為常用的 .jpg.jpeg 格式。

如圖:

解決:

MyImages 目錄下創(chuàng)建名為 convert.py 的Python文件,開(kāi)始代碼編寫(xiě)

代碼思路:

  • 獲取當(dāng)前目錄的文件名列表
  • 開(kāi)始遍歷列表元素
  • 嘗試讀取圖片,如果遇到 IOError (說(shuō)明不是可讀取的圖片類(lèi)型,略過(guò)這一文件) ,否則繼續(xù)執(zhí)行
  • 如果圖片已經(jīng)是.jpg.jpeg 后綴,則不處理
  • 將圖片以jpeg 格式保存在當(dāng)前目錄
  • 將原圖片移動(dòng)到./SourceImage 文件夾下(如果此文件夾不存在則新建)

完整代碼

#!python3

import os
from PIL import Image

#獲取文件名列表
imgList = os.listdir("./")

##函數(shù):獲取文件的后綴長(zhǎng)度(例如 jpg 和 jpeg 的長(zhǎng)度分別為 3 和 4 )
#def typeNameLengthCount(name):
#?? ?count = 0
#?? ?for i in range(1, len(name)):
#?? ??? ?if(name[-i] == '.'):
#?? ??? ??? ?break
#?? ??? ?else:
#?? ??? ??? ?count += 1
#?? ?return count
#修改:上面這是原來(lái)的代碼,后來(lái)想起os庫(kù)有現(xiàn)成的分離文件名和后綴名的函數(shù),于是此自定義函數(shù)棄用

#檢查 ./SourceImage 目錄是否存在,不存在則創(chuàng)建它
if (not (os.path.exists("./SourceImage"))):
?? ?os.mkdir("./SourceImage")

#開(kāi)始遍歷文件
for name in imgList:
?? ?try:
?? ??? ?img = Image.open(name) #嘗試打開(kāi)圖片,如果不是可以打開(kāi)的類(lèi)型,則忽略(因?yàn)樾枰雎源a文件本身及后面創(chuàng)建的SourceImage文件夾)
?? ??? ?
?? ??? ?#type_length = typeNameLengthCount(name)
?? ??? ?#file_type = name[-type_length:] #得到后綴的長(zhǎng)度
?? ??? ?#修改:用庫(kù)方法替代自定義方法:
?? ??? ?file_name, file_type = os.path.splitext(name)
?? ??? ?
?? ??? ?if file_type == 'jpg' or file_type == 'jpeg': #如果已經(jīng)是 .jpg 或 .jpeg 類(lèi)型,則跳過(guò)
?? ??? ??? ?continue
?? ??? ?else:
?? ??? ?
?? ??? ??? ?#img.save("%s.jpg"%(name[0:(-type_length-1)]), 'jpeg')
?? ??? ??? ?#修改:改用下面這行代碼:
?? ??? ??? ?img.save("%s.jpg"%(file_name), 'jpeg')
?? ??? ??? ?
?? ??? ??? ?os.rename(name, "./SourceImage/%s"%name) #移動(dòng)原圖片,此處用shutil.move( , ) 方法同樣可行, 而且這個(gè)方法可以實(shí)現(xiàn)文件在磁盤(pán)間的移動(dòng)
?? ?except IOError:
?? ??? ?print("one file was ignored")

運(yùn)行:

運(yùn)行前

運(yùn)行時(shí)

運(yùn)行后

原圖片將保留

以后再下載保存的文件就運(yùn)行一下這個(gè)代碼就好了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論