--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Mac/Demo/imgbrowse/mac_image.py Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,55 @@
+"""mac_image - Helper routines (hacks) for images"""
+import imgformat
+from Carbon import Qd
+import struct
+import MacOS
+
+_fmt_to_mac = {
+ imgformat.macrgb16 : (16, 16, 3, 5),
+}
+
+def mkpixmap(w, h, fmt, data):
+ """kludge a pixmap together"""
+ fmtinfo = _fmt_to_mac[fmt]
+
+ rv = struct.pack("lHhhhhhhlllhhhhlll",
+ id(data)+MacOS.string_id_to_buffer, # HACK HACK!!
+ w*2 + 0x8000,
+ 0, 0, h, w,
+ 0,
+ 0, 0, # XXXX?
+ 72<<16, 72<<16,
+ fmtinfo[0], fmtinfo[1],
+ fmtinfo[2], fmtinfo[3],
+ 0, 0, 0)
+## print 'Our pixmap, size %d:'%len(rv)
+## dumppixmap(rv)
+ return Qd.RawBitMap(rv)
+
+def dumppixmap(data):
+ baseAddr, \
+ rowBytes, \
+ t, l, b, r, \
+ pmVersion, \
+ packType, packSize, \
+ hRes, vRes, \
+ pixelType, pixelSize, \
+ cmpCount, cmpSize, \
+ planeBytes, pmTable, pmReserved \
+ = struct.unpack("lhhhhhhhlllhhhhlll", data)
+ print 'Base: 0x%x'%baseAddr
+ print 'rowBytes: %d (0x%x)'%(rowBytes&0x3fff, rowBytes)
+ print 'rect: %d, %d, %d, %d'%(t, l, b, r)
+ print 'pmVersion: 0x%x'%pmVersion
+ print 'packing: %d %d'%(packType, packSize)
+ print 'resolution: %f x %f'%(float(hRes)/0x10000, float(vRes)/0x10000)
+ print 'pixeltype: %d, size %d'%(pixelType, pixelSize)
+ print 'components: %d, size %d'%(cmpCount, cmpSize)
+ print 'planeBytes: %d (0x%x)'%(planeBytes, planeBytes)
+ print 'pmTable: 0x%x'%pmTable
+ print 'pmReserved: 0x%x'%pmReserved
+ for i in range(0, len(data), 16):
+ for j in range(16):
+ if i + j < len(data):
+ print '%02.2x'%ord(data[i+j]),
+ print