Issue 900949: plat-mac/videoreader.py not working on OS X (original) (raw)
plat-mac/videoreader.py uses modules like "img" which used to be in Mac OS 9 builds, but are no longer in OS X builds. I suggest replacing the pieces with code writing images using PIL, if available.
The critical new pieces (whithout checks for PIL) in methods ReadVideo/_getpixmapcontent are:
#----------------------------- from PIL import Image ...
convert from ARGB to RGBA (faster/better anyone?)
data = [] for i in xrange(0, widthheight4, 4): a, r, g, b = rv[i:i+4] data.append(r + g + b + a) data = ''.join(data)
save image using PIL
img = Image.fromstring("RGBA", (width, height), data) img.save(<>+".jpg", "JPEG") #-----------------------------
See also my posting on the pythonmac list and its attached script:
http://mail.python.org/pipermail/pythonmac-sig/2004- February/010282.html
or see the attached file (which does not do exactly the same as videoreader.py!)...
Dinu
PS: This is on Py 2.3.3 on Mac OS X 10.2.8...
Logged In: YES user_id=12190
Also note that a using ''.join() as in the function I'm using below is much faster than repeated string concatenation as in videoreader.py:
def convertPixmapToARGB(pixmap, width, height): rowbytes = Qdoffs.GetPixRowBytes(pixmap) start = 0 rv = [] getBytes = Qdoffs.GetPixMapBytes for i in xrange(height): nextline = getBytes(pixmap, start, width*4) start = start + rowbytes rv.append(nextline) rv = ''.join(rv) return rv