Re: [問題] 在python中讀入圖檔做像素解析

看板Python作者 (埃森C)時間15年前 (2009/11/21 19:28), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
自己回文 XD 把完成的程式碼po出來請各位前輩指教一下還有沒有更好的做法 以下程式碼功能為將檔頭資訊塞到一個Dict中 ============================================ Fp = open( FileName, 'rb' ) Line = Fp.readline() # Bmp格式可參見 http://crazycat1130.pixnet.net/blog/post/1345538. BmpHeader = [ #Size(bytes) Content "Idn1",# 'B'【註1】 "Idn2",# 'M'【註1】 "FileSize",# 整個點陣圖檔案的大小(單位:byte) "UnKnow",# 保留欄位 "Offset1",# 點陣圖資料開始之前的偏移量(單位:byte) "HeaderSize",# Bitmap Info Header 的長度【註2】 "Width",# 點陣圖的寬度,以像素(pixel)為單位 "Height",# 點陣圖的高度,以像素(pixel)為單位【註3】 "Planes",# 點陣圖的位元圖層數【註4】 "BitsPerPix",# 每個像素的位元數1:單色點陣圖(使用 2 色調色盤)4:4 位元點陣圖(使用 16 色調色盤)8:8 位元點陣圖(使用 256 色調色盤)16:16 位元高彩點陣圖(不一定使用調色盤)24:24 位元全彩點陣圖(不使用調色盤)32:32 位元全彩點陣圖(不一定使用調色盤)【註5】 "Compression",# 壓縮方式【註6】:0:未壓縮1:RLE 8-bit/pixel2:RLE 4-bit/pixel3:Bitfields "BmpDataSize",# 點陣圖資料的大小(單位:byte)【註7】。 "H-Resolution",# 水平解析度(單位:像素/公尺)【註8】 "V-Resolution",# 垂直解析度(單位:像素/公尺) "UsedColors",# 點陣圖使用的調色盤顏色數【註9】 "ImportantColors",# 重要的顏色數【註10】 #Nx4,# 調色盤資料。每個索引值指定一種顏色:0x00RRGGBB其中最高位元組保留為零 ] # 以下檔頭資訊. BmpHeaderFmt = '<ccllllllhhllllll' HeaderDataList = struct.unpack_from( BmpHeaderFmt, Line ) HeaderDataDict = {} for Idx, Name in enumerate(BmpHeader): HeaderDataDict[Name] = HeaderDataList[Idx] for N, V in HeaderDataDict.items(): print N, V -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.115.227

11/21 23:09, , 1F
文章代碼(AID): #1B1yxRcV (Python)
文章代碼(AID): #1B1yxRcV (Python)