簡 介: 本文給出了將 HEIC 格式的文件轉(zhuǎn)換成 BMP,JPEG 的方法。HEIC 格式的文件,在相同的圖像質(zhì)量下文件大小只有普通JPEG格式的一半,所以現(xiàn)在被廣泛應(yīng)用在便攜式拍照設(shè)備中存儲拍攝的文件。這樣可以在相同的存儲介質(zhì)下擴大存儲圖片的容量。
關(guān)鍵詞:
HEIC,JPEG,BMP
01 HEIC格式圖片
01 HEIC格式圖片
一、背景介紹
一、背景介紹
近期收到 ZF 發(fā)送過來的智能車競賽現(xiàn)場文件,其中包括有后綴為 HEIC 格式的圖片。所以需要將其轉(zhuǎn)換成可以進一步編輯的 JPEG,BMP 文件。HEIC 后綴的圖片軟件在相同的圖片質(zhì)量下,文件的大小只有普通 JPEG 文件的一半左右,所以被廣泛應(yīng)用在便攜式拍照設(shè)備中用于圖片的存儲。
▲ 圖1.1 不同格式后綴的圖片文件
二、Python轉(zhuǎn)換圖片
在 How to Convert From HEIC to JPG in Python on WIndows[1] 給出了應(yīng)用 pillow_heif 模塊進行轉(zhuǎn)換的例子。
1、安裝 pillow_heif
在應(yīng)用之前,首先使用 pip 安裝 pillow_heif python 模塊。
python - m pip install pillow_heif
經(jīng)過測試這個過程需要按照好幾次,才能夠正確吧 pillow_heif 安裝在計算機中。
提示: 在安裝的時候,需要將 QuickQ 關(guān)閉連接才行。
2、轉(zhuǎn)換 HEIC 圖片
(1)轉(zhuǎn)換軟件
#!/usr/local/bin/python # -*- coding: gbk -*- #****************************** # TEST1.PY -- by Dr. ZhuoQing 2022-09-20 # # Note: #****************************** from headm import * import PIL import pillow_heif
fname = r'D:\Temp\heic\IMG_2268.HEIC' heif_file = pillow_heif.read_heif(fname)
image = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data, 'raw')
image.save(r'd:\temp\1.bmp', format("bmp"))
printf("\a") #------------------------------------------------------------ # END OF FILE : TEST1.PY #******************************
(2)轉(zhuǎn)換結(jié)果
面圖片是利用上述軟件轉(zhuǎn)換后的
下利用 Python 進行轉(zhuǎn)換,轉(zhuǎn)速速度大約為 1 秒鐘一副圖片。
三、批量轉(zhuǎn)換
1、轉(zhuǎn)換代碼
下面程序是將目錄中的所有 HEIC 格式的文件名轉(zhuǎn)換成 BMP 格式的文件。
#!/usr/local/bin/python # -*- coding: gbk -*- #****************************** # TEST1.PY -- by Dr. ZhuoQing 2022-09-20 # # Note: #****************************** from headm import * import PIL import pillow_heif
indir = r'd:\temp\heic' outdir = r'd:\temp' infile = os.listdir(indir) for f in infile: if f.find('HEIC') < 0: continue fname = os.path.join(indir, f)
heif_file = pillow_heif.read_heif(fname)
image = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data, 'raw')
outname = os.path.join(outdir, f.split('.')[0] + '.BMP')
image.save(outname, format("bmp"))
printf(f)
printf('\a') #------------------------------------------------------------ # END OF FILE : TEST1.PY #******************************
2、轉(zhuǎn)換結(jié)果
▲ 圖1.3.1 轉(zhuǎn)換后的結(jié)果
※ 總 結(jié) ※
本文給出了將 HEIC 格式的文件轉(zhuǎn)換成 BMP,JPEG 的方法。HEIC 格式的文件,在相同的圖像質(zhì)量下文件大小只有普通JPEG格式的一半,所以現(xiàn)在被廣泛應(yīng)用在便攜式拍照設(shè)備中存儲拍攝的文件。這樣可以在相同的存儲介質(zhì)下擴大存儲圖片的容量。
參考資料
[1]
How to Convert From HEIC to JPG in Python on WIndows: https://stackoverflow.com/questions/63866180/how-to-convert-from-heic-to-jpg-in-python-on-windows