Как отобразить QImage в QWebKit?

Есть ли способ отобразить QImage (в памяти, а не в файловой системе) в QWebFrame, не записывая изображение во временный файл?

2 ответа

Одним из вариантов может быть использование схемы URI данных. Вы в основном base64 кодируете свою картинку и записываете полные данные в URL. Например:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC

WebKit должен поддерживать эти URI либо напрямую, либо как часть исходного кода HTML, например

<img src="data:image/png;base64,blaBLABLA" />

Имейте в виду: если ваше изображение велико, вы можете столкнуться с некоторыми ограничениями. Обычно это используется для небольших вещей, таких как значки.

Черт. Штеффен победил меня в этом!:)

Чтобы добавить, вы можете преобразовать в base 64, сохранив изображение в QBuffer(&byteArray), а затем произнесите byteArray.toBase64()

Другие вопросы по тегам