यह मोनोक्रोम बिटमैप्स के लिए एक पूर्ण जवाब है।
import math, struct
mult4 = lambda n: int(math.ceil(n/4))*4
mult8 = lambda n: int(math.ceil(n/8))*8
lh = lambda n: struct.pack("<h", n)
li = lambda n: struct.pack("<i", n)
def bmp(rows, w):
h, wB = len(rows), int(mult8(w)/8)
s, pad = li(mult4(wB)*h+0x20), [0]*(mult4(wB)-wB)
s = li(mult4(w)*h+0x20)
return (b"BM" + s + b"\x00\x00\x00\x00\x20\x00\x00\x00\x0C\x00\x00\x00" +
lh(w) + lh(h) + b"\x01\x00\x01\x00\xff\xff\xff\x00\x00\x00" +
b"".join([bytes(row+pad) for row in reversed(rows)]))
उदाहरण के लिए:
bmp(smile, 8)
नोट यह है कि:
smile = [[0xFF], [0x81], [0xA5], [0x81], [0xA5], [0xBD], [0x81], [0xFF]]
के साथ प्रस्तुत:
FF XXXXXXXX
81 X......X
A5 X.X..X.X
81 X......X
A5 X.X..X.X
BD X.XXXX.X
81 X......X
FF XXXXXXXX
तो, पंक्तियों की एक श्रृंखला के रूप में इस एन्कोडिंग प्रोग्रामर की ज़िम्मेदारी यह सुनिश्चित करने के लिए कि आवश्यक एनयू बाइट्स के मेबर आपूर्ति की गई प्रत्येक पंक्ति में मौजूद हैं।
काला रंग \ xff \ xff \ xff में निर्दिष्ट है और सफेद रंग निम्नलिखित \ x00 \ x00 \ x00 में निर्दिष्ट है, क्या आप उन्हें बदलना चाहते हैं।
['struct'] (http://docs.python.org/library/struct.html) मॉड्यूल देखें। –
इसके अलावा, [यह मंच थ्रेड] जांचें (http://pseentertainmentcorp.com/smf/index.php?topic=2034.0)। – Chewie
धन्यवाद, चेवी, यह वही है जो मुझे चाहिए –