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