On 12/28/06, Ray Schumacher <[EMAIL PROTECTED]> wrote: > I'm trying to make a small camera server using VideoCapture.py and > socket. I needed to construct a complete image file with headers etc > for a browser to recognize it, but I couldn't find a combination of > StringIO and wx image methods to avoid disk saves, without PIL. > > If I save a temp.jpg file to disk I can serve the image easily: > ... > self.cam = VideoCapture.Device(devnum=0, showVideoWindow=0) > buff, width, height = self.cam.dev.getbuffer() > im = wx.EmptyImage(width, height) > im.SetData(buff) > im.Mirror().SaveFile('temp.jpg', wx.BITMAP_TYPE_JPEG) > ... > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.bind((HOST, PORT)) > s.listen(1) > conn, addr = s.accept() > while 1: > data = conn.recv(1024) > if data[:3] == 'GET': > conn.send("HTTP/1.0 200 OK"+"\015\012") > conn.send("Server: RJS_video/0.0.1"+"\015\012") > conn.send("Content-type: image/bmp"+"\015\012") > conn.send("Content-Length: "+str(352*288*3+256)+"\015\012") > conn.send("\015\012") > fh = file('temp.jpg', 'rb') > conn.send(fh.read()) > fh.close() > else: break > > But, how can I avoid disk writes? wx's *.SaveFile() needs a string > file name (no objects). > I'm going to investigate PIL's im.save(), as it appears to allow > file-objects. >
wx.Image.GetData() returns the raw image data as a Python string. -- http://mail.python.org/mailman/listinfo/python-list