Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: marbius от Август 31, 2010, 15:17



Название: [ВРЕМЕННО РЕШЕНО] QWebView и динамическая генерация изображений
Отправлено: marbius от Август 31, 2010, 15:17
Доброго времени суток.

Подскажите, в каком направлении искать решение? Необходимо, чтобы QWebView отображал картинки, генерируемые в памяти, например, чтобы тэг <img src="photos/0001.jpg"> обрабатывался моей программой и она в ответ выдавала необходимое изображение через QImage, хотябы например. Вариант с временным хранением сгенерированных изображений на диске не совсем устраивает.

Заранее благодарен


Название: Re: QWebView и динамическая генерация изображений
Отправлено: sendevent от Август 31, 2010, 17:23
если QWebView необходим тока для отображения генерируемых картинок - не верной дорогой идете, товарисч.
Код:
QString strHtmlImgTag( "<img src=\"data:image/png;base64,%1\" width=\"%2\" height=\"%3\"/>" );
QBuffer imageBuffer;
imageBuffer.open(QBuffer::ReadWrite);
QImage img( "/some/image.png" );
if( img.save( &imageBuffer, "PNG" ) )
{
    SomeHtmlBody->appned( strHtmlImgTag
    .arg( QLatin1String(imageBuffer.buffer().toBase64()) )
    .arg( img.width() )
    .arg( img.height() ) );
}
глянь %QTDIR%/demos/browser - пример практически оттуда.
как вариант - эта (http://www.prog.org.ru/topic_14019_0.html) тема, но с base64 вроде удобней.
пиксмапину DOM-элемента можно получить через QWebHitTestResult.


Название: Re: QWebView и динамическая генерация изображений
Отправлено: Denjs от Август 31, 2010, 18:14
Код:
QString strHtmlImgTag( "<img src=\"data:image/png;base64,%1\" width=\"%2\" height=\"%3\"/>" );
...
глянь %QTDIR%/demos/browser - пример практически оттуда.
как вариант - эта (http://www.prog.org.ru/topic_14019_0.html) тема, но с base64 вроде удобней.
пиксмапину DOM-элемента можно получить через QWebHitTestResult.
о КАК можно! спасибо... мне тоже пригодится.


Название: Re: QWebView и динамическая генерация изображений
Отправлено: marbius от Сентябрь 02, 2010, 15:01
Код:
QString strHtmlImgTag( "<img src=\"data:image/png;base64,%1\" width=\"%2\" height=\"%3\"/>" );
Принято как решение сути проблемы (временное?).

Описание подхода как такового, не относящегося напрямую к Qt, можно найти здесь:http://ru.wikipedia.org/wiki/Data:_URL (http://ru.wikipedia.org/wiki/Data:_URL)