def create_preview(self, object_id, col, id): jobject = datastore.get(object_id) if jobject.metadata.has_key('preview'): preview = jobject.metadata['preview'] if preview is None or preview == '' or preview == 'None': if (jobject.metadata['mime_type'].startswith('image/')): # or (jobject.metadata['mime_type'].startswith('video')): filename = jobject.get_file_path() self.show_image(filename, col, id) return if jobject.metadata.has_key('preview') and \ len(jobject.metadata['preview']) > 4: if jobject.metadata['preview'][1:4] == 'PNG': preview_data = jobject.metadata['preview'] else: import base64 preview_data = base64.b64decode(jobject.metadata['preview']) loader = Gdk.PixbufLoader() loader.write(preview_data) scaled_buf = loader.get_pixbuf() loader.close() self.image[col][id].set_from_pixbuf(scaled_buf) self.image[col][id].show() else: self.image[col][id].clear() self.image[col][id].show()
def surface_to_pixbuf(surface): try: file1 = StringIO() surface.write_to_png(file1) contents = file1.getvalue() finally: file1.close() loader = gdk.PixbufLoader("png") loader.write(contents, len(contents)) pixbuf = loader.get_pixbuf() loader.close() return pixbuf
def image_to_pixbuf(im, type="ppm"): p_type = type if type == "ppm": p_type = "pnm" file1 = StringIO() try: im.save(file1, type) contents = file1.getvalue() finally: file1.close() loader = gdk.PixbufLoader(p_type) loader.write(contents, len(contents)) pixbuf = loader.get_pixbuf() loader.close() return pixbuf