bmp格式轉為jpeg格式檔案
阿新 • • 發佈:2020-10-12
bmp格式轉為jpeg格式檔案
BMP是英文Bitmap(點陣圖)的簡寫,它是Windows作業系統中的標準影象檔案格式,能夠被多種Windows應用程式所支援。隨著Windows作業系統的流行與豐富的Windows應用程式的開發,BMP點陣圖格式理所當然地被廣泛應用。這種格式的特點是包含的影象資訊較豐富,幾乎不進行壓縮,但由此導致了它與生俱生來的缺點--佔用磁碟空間過大。所以,目前BMP在單機上比較流行。
在BMP檔案中,如果一個數據需要用幾個位元組來表示的話,那麼該資料的存放位元組順序為“低地址村存放低位資料,高地址存放高位資料
42 4d = BM 表示這是Windows支援的點陣圖格式,開頭兩個位元組必須為'BM'才是Windows點陣圖檔案
和檔案大小一致
6-9 :這是兩個保留段,為0。
A-D:00000436h = 1078。即從檔案頭到點陣圖資料需偏移1078位元組
0E-11:00000028h = 40,這就是說我這個點陣圖資訊頭的大小為40個位元組。
12-15:00000100h = 256,影象寬為255畫素,與檔案屬性一致。
16-19:00000100h = 256,影象高為255畫素,與檔案屬性一致。這是一個正數,說明影象資料是從影象左下角到右上角排列的。
1A-1B:0001h, 該值總為1。
1C-1D:0008h = 8, 表示每個畫素佔8個位元,即該影象共有256種顏色。
1E-21:00000000h,BI_RGB, 說明本影象不壓縮。
22-25:00000000h,影象的大小,因為使用BI_RGB,所以設定為0。
26-29:00000000h,水平解析度,預設。
2A-2D:00000000h,垂直解析度,預設。
2E-31:00000100h = 256,說明本點陣圖實際使用的顏色索引數為256,與1C-ID得到的結論一致。
32-35:00000100h = 256,說明本點陣圖重要的顏色索引數為256,與前面得到的結論一致。
調色盤其實是一張對映表,標識顏色索引號與其代表的顏色的對應關係
由於點陣圖資訊頭中的影象高度是正數,所以點陣圖資料在檔案中的排列順序是從左下角到右上角,以行為主序排列的
# coding:utf-8 import os from PIL import Image # bmp 轉換為jpg,灰度圖轉RGB def bmpToJpg_grayToRGB(file_path): for fileName in os.listdir(file_path): print(fileName) newFileName = fileName[0:fileName.find(".bmp")]+".jpg" print(newFileName) im = Image.open(file_path+"\\"+fileName) rgb = im.convert('RGB') #灰度轉RGB rgb.save(file_path+"\\"+newFileName) # 刪除原來的點陣圖 def deleteImages(file_path, imageFormat): command = "del "+file_path+"\\*."+imageFormat os.system(command) def main(): file_path = "G:\\study\\material\\images" bmpToJpg_grayToRGB(file_path) # deleteImages(file_path, "bmp") if __name__ == '__main__': main()
其實這是資訊理論相關的內容,但是這個沒有涉及到資訊理論相關知識。。。暈