Cargar datos de imagen blob en QPixmap

Estoy escribiendo un programa que usa PyQt4 para la interfaz gráfica de usuario y este programa accede a una base de datos back-end (que puede ser MySQL o SQLite). Necesito almacenar algunos datos de imagen en la base de datos y debajo está el código Python que uso para importar archivos de imagen (en formato JPEG) a un campo de datos de blob en la base de datos:

def dump_image(imgfile):
    i = open(imgfile, 'rb')
    i.seek(0)
    w = i.read()
    i.close()
    return cPickle.dumps(w,1)

blob = dump_image(imgfile)
hex_str = blob.encode('hex') 
# x"%s"%hex_str will be the string inserted into the SQL command

Esta parte funciona bien. Mi pregunta es sobre cómo crear un objeto QPixmap a partir de los datos de imagen almacenados en la base de datos en PyQt4. Mi enfoque actual involucra los siguientes pasos:

(1) Hex str en la base de datos - cPickle & StringIO -> PIL Image Object

def load_image(s):
    o = cPickle.loads(s)
    c = StringIO.StringIO()
    c.write(o)
    c.seek(0)
    im = Image.open(c)
    return im

(2) Objeto de imagen PIL -> Archivo de imagen temporal

(3) Archivo de imagen temporal -> QPixmap

Este enfoque también funciona bien. Pero sería mejor si no tuviera que escribir / leer archivos de imagen temporales, lo que puede ralentizar la respuesta del programa a las interacciones del usuario. Supongo que podría usarQPixmap :: loadFromData () para cargar directamente desde los datos de blob almacenados en la base de datos y esperar que alguien aquí pueda mostrarme un ejemplo sobre cómo usar esta función.

TIA,

Bing

Respuestas a la pregunta(3)

Su respuesta a la pregunta