I'm sending a stream of JPEG images from a Raspberry Pi to my MBP via a simple socket programme in Python 2.7. When I read the image from the stream on my MBP, it opens up in Preview and opens a new Preview window for every separate image. I have an fps of about 2/3 and obviously 2/3 new windows per second is impossible to work with. How can I go about only opening one Preview window and simply overwriting the displayed image? Would OpenCV be the best way to go? If so I am unsure how to. Here is how I read the stream and display the images: image_len = struct.unpack('<L', connection.read(struct.calcsize('<L')))[0] if not image_len: break image_stream = io.BytesIO() image_stream.write(connection.read(image_len)) image_stream.seek(0) image = Image.open(image_stream) image.show() Continue reading...