Re: [問題] 在python中讀入圖檔做像素解析
自己回文 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
11/21 23:09, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章