Всем привет. Заранее извиняюсь, если ошибся с разделом.
Есть не большая проблема и вот в чем ее суть.
Есть у меня некоторые файлики "ресурсов", в которых разные данные идут слоями, в том числе и картинки. Грубо говоря это выглядит так: идет строка (допустим "image"), далее int - размер картинки в байтах, ну сама картинка в байтах.
Достаю я картинку следующим образом:
m_image.loadFromData(ba, "PNG");
На форме картинка показывается правильно. Сую ее просто в QLabel. Далее я что-то меняю в других слоях файла, не трогая картинки и упаковываю в нужный формат.
Сохраняю картинку вот так:
QByteArray ret;
QBuffer buf(&ret);
if (!buf.open(QIODevice::WriteOnly))
return ret;
p.save(&buf, "PNG");
buf.close();
return ret;
Все вроде как хорошо, но картинка бьется. Банально байтмассивы не совпадают. Да и потом с файлом возятся в Java и делают следующее: загоняют тот же байтмассив в BufferedImage, а потом делают это (
https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html#getRaster()) и это (
https://docs.oracle.com/javase/7/docs/api/java/awt/image/Raster.html#getNumBands()) и жалуются что numBands != 1.
Если кто-то лучше в этом шарит, подскажите пожалуйста, что я делаю не так? Заранее спасибо.