Передача изображения QByteArray из С++ в QML

Мне нужно показать изображение png на странице QML, используя QByteArray, переданный из подпрограмм С++ в QML. Как я могу это сделать? Пожалуйста, помогите мне с этим, ребята..


person Varghese Kiran    schedule 23.07.2013    source источник
comment
mattgemmell.com/2008/12/08/what-have-you -пробовал   -  person albertjan    schedule 24.07.2013


Ответы (1)


Предполагая, что у вас есть данные в QByteArray с именем data, это должно работать:

QImage image;
image.loadFromData(data);
const QImage swappedImage = image.rgbSwapped();
const bb::ImageData imageData = bb::ImageData::fromPixels(swappedImage.bits(), bb::PixelFormat::RGBA_Premultiplied, swappedImage.width(), swappedImage.height(), swappedImage.bytesPerLine());

_image = bb::cascades::Image(imageData);

Теперь вы можете отображать _image в ImageView в коде QML. Для этого вам нужно преобразовать его в QVariant: QVariant::fromValue(_image);. После этого вы можете отобразить его в любом файле ImageView. Я предполагаю, что у вас есть объект с именем feed, который имеет свойство image (QVariant):

ImageView {
    image: feed.image
}
person Marc Plano-Lesay    schedule 23.07.2013
comment
Спасибо за ваш ответ. Как я могу передать это _image в ImageView в QML? Я пробовал много методов, но все это терпит неудачу...!! - person Varghese Kiran; 24.07.2013
comment
Я обновил свой ответ, чтобы объяснить это. По сути, вам нужно преобразовать свое изображение в QVariant, тогда все будет работать. - person Marc Plano-Lesay; 24.07.2013
comment
Спасибо за ваш ответ. Еще одна помощь, пожалуйста. Как я могу установить свойство изображения (QVaiant) для объекта с именем feed. - person Varghese Kiran; 28.07.2013
comment
Мой объект фида — это объект, экспортированный из C++. Его класс объявляет различные свойства с помощью макроса Q_PROPERTY: developer.blackberry.com/cascades/reference/ свойства.html - person Marc Plano-Lesay; 28.07.2013
comment
Не могли бы вы дать мне пример кода для реализации Q_PROPERTY для этого сценария. Потому что документация немного запутана. Заранее спасибо... - person Varghese Kiran; 28.07.2013
comment
Мой полный курс Feed доступен здесь: github. com/Kernald/tt-rss-bb10/blob/master/src/data/feed.hpp — обратите внимание, что image теперь icon. - person Marc Plano-Lesay; 28.07.2013
comment
Это сотворило волшебство. Большое спасибо за помощь... :) - person Varghese Kiran; 29.07.2013