Как конвертировать QImage в QByteArray?

Я пытаюсь создать QByteArray из QImage, однако, хотя я пробовал много разных, я не смог с этим справиться

Что я делаю, это:

QImage img_enrll; // <--- There is an image coming from another function. 

QByteArray arr((char*)img_enrll.bits(),img_enrll.byteCount());  // <-- convertion but I am not sure it is true or not. 

funcCheck((unsigned char*)arr.data(), arr.size(), 0, &sam, 1, &n);


virtual Error funcCheck (const uint8_t    src[],
                           size_t           src_len,
                           size_t           tout_ms,
                           IRawSample*      dst[],
                           size_t           dst_len,
                           size_t*          dst_n )

Однако код ошибки возвращает неверные данные. Я думаю, что преобразование QImage в QByteArray является неправильным. Пожалуйста, не могли бы вы помочь мне, как конвертировать в QByteArray?

7 голосов | спросил goGud 7 SunEurope/Moscow2014-12-07T17:20:30+03:00Europe/Moscow12bEurope/MoscowSun, 07 Dec 2014 17:20:30 +0300 2014, 17:20:30

2 ответа


0

Вы можете сделать это:

QImage img_enrll;
QByteArray arr;
QBuffer buffer(&arr);
buffer.open(QIODevice::WriteOnly);
img_enrll.save(&buffer, "yourformat");

Написав это, если вам нужно это для сериализации, вам лучше воспользоваться 162" rel =" noreferrer "> QDataStream .

ответил lpapp 7 SunEurope/Moscow2014-12-07T17:34:39+03:00Europe/Moscow12bEurope/MoscowSun, 07 Dec 2014 17:34:39 +0300 2014, 17:34:39
0

Попробуйте это:

QByteArray arr = QByteArray::fromRawData((const char*)img.bits(), img.byteCount());
ответил Tarek.Mh 22 Jam1000000amTue, 22 Jan 2019 10:47:19 +030019 2019, 10:47:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132