[Image-SIG] How to pass the address of the buffer to Image.frombuffer()

Веселин mail at vpetkov.com
Tue Jan 26 12:51:06 CET 2010


I want to display captured frames from a webcam. I am using
video4linux2, v4l2 bindings for python and ctypes.

I am also using Tk. In the main loop of my v4l2 app, after Q_BUF,
STREAM_ON, DQ_BUF I call method that looks something like that:


window = Tkinter.Tk()
image = ImageTk.PhotoImage(pixelfmt, (320, 240))
label = Tkinter.Label(window, image=image)
label.pack()

im = Image.frombuffer(pixelfmt, (320, 240),
ctypes.string_at(buf.userptr, buf.length), 'raw', pixelfmt, 0, 1)

image.paste(im)
window.update()


Now, how is buf.userptr supposed to look like? A ctypes.c_void_p?
In my case buf.userptr is long. Something like 170692608.

I don't know how addresses in python should look like.


More information about the Image-SIG mailing list