[ python-Bugs-900949 ] plat-mac/videoreader.py not working on OS X

SourceForge.net noreply at sourceforge.net
Sat Feb 21 12:09:08 EST 2004


Bugs item #900949, was opened at 2004-02-20 08:52
Message generated for change (Comment added) made by dinu_gherman
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=900949&group_id=5470

Category: Macintosh
Group: Platform-specific
Status: Open
Resolution: None
Priority: 5
Submitted By: Dinu C. Gherman (dinu_gherman)
Assigned to: Jack Jansen (jackjansen)
Summary: plat-mac/videoreader.py not working on OS X

Initial Comment:
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, width*height*4, 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(<<some filename>>+".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...

----------------------------------------------------------------------

>Comment By: Dinu C. Gherman (dinu_gherman)
Date: 2004-02-21 17:09

Message:
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

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=900949&group_id=5470



More information about the Python-bugs-list mailing list