Загрузить данные изображения блоба в QPixmap

Я пишу программу, использующую PyQt4 для внешнего интерфейса, и эта программа обращается к внутренней базе данных (которая может быть MySQL или SQLite). Мне нужно сохранить некоторые данные изображения в базе данных, и ниже приведен код Python, который я использую для импорта файлов изображений (в формате JPEG) в поле данных BLOB-объектов в базе данных:

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

Эта часть отлично работает. Мой вопрос о том, как создать объект QPixmap из данных изображений, хранящихся в базе данных в PyQt4. Мой текущий подход включает в себя следующие шаги:

(1) шестнадцатеричная строка в базе данных - 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) Объект изображения PIL ->Временный файл изображения

(3) Временный файл изображения -> QPixmap

Этот подход также отлично работает. Но было бы лучше, если бы я ненеобходимо записывать / читать временные файлы изображений, которые могут замедлить реакцию программы на взаимодействие с пользователем. Я думаю, я мог бы использоватьQPixmap :: loadFromData () непосредственно загружать из BLOB-данных, хранящихся в базе данных, и надеяться, что кто-то здесь сможет показать мне пример использования этой функции.

ТИА,

Bing

Ответы на вопрос(3)

Ваш ответ на вопрос