作者essenc (埃森C)
看板Python
标题Re: [问题] 在python中读入图档做像素解析
时间Sat Nov 21 19:28:25 2009
自己回文 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