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()
Пример #2
0
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
Пример #3
0
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