Когда я конвертирую QString в QByteArray, я вижу, что QByteArray имеет некоторые дополнительные символы.
Мне нужно это сохранить изображение в строковом формате, а затем прочитать строку, преобразовать эту строку в Qbytearray и загрузить изображение обратно.
void WorkWithImagesForSerialization_1()
{
QImage original_image("someicon.png");
if (original_image.isNull() != true)
{
QByteArray original_bytearray;
QBuffer original_buffer(&original_bytearray);
original_buffer.open(QIODevice::WriteOnly);
original_image.save(&original_buffer, "png"); // writes image into ba in PNG format
QString original_string;
// PMJ : I did this because, constructing QString from byte arry would stop after finding first terminating character
for (int i=0;i<original_bytearray.size();++i)
{
original_string[i] = original_bytearray[i];
}
QByteArray second_bytearray = original_string.toUtf8();
// original_string = "\211PNG\r\n\032\n\0.....
// second_bytearray = "Â\211PNG\r\n\032\n\0....
// Since, image is loaded from byte array, below image second_image is null.
QImage second_image;
second_image.loadFromData(second_bytearray);
// second_image is null here
}
}
Я ожидаю, что преобразование QByteArray должно быть правильным, чтобы я мог перезагрузить изображение.