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. Ray -- http://mail.python.org/mailman/listinfo/python-list