Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4] QFile + QByteArray


Автор: fearuth 23.8.2009, 07:56
Привет Всем! Есть такая проблема:
Нужно преобразовать рисунок в текст (при помощи Base64), записать его в файл (получившийся текст), а потом обратно считать текст из файла и сделать обратное преобразование его в рисунок:

Код

QFile origin("./test.jpg"),text("./test.txt"),vost("./vost.jpg");
QTextStream txts(&text);
QDataStream rec(&vost);
QByteArray img_or,img_vost;

//Чтение рисунка
if(!origin.open(QIODevice::ReadOnly)) renturn;
img_or=origin.readAll();
origin.close();

//Запись текста
if(!text.open(QIODevice::WriteOnly)) renturn;
txts<<img_or.toBase64();
text.close();

img_vost=img_or.toBase64();

//Запись восстановленного изображения в файл
if(!vost.open(QIODevice::WriteOnly)) renturn;
rec<<QByteArray::fromBase64(img_vost);
vost.close();



Код облегчил, без повторного чтения из файла (с текстом base64). Но почему-то первые 3 байта не соответствуют оригиналу... =( Что делать?

Автор: Cheloveck 23.8.2009, 12:15
сейчас угадаю, первые три байта EF BB BF. Это заголовок UTF-8 файла. Нужно сохранять без него. Или не читать его.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)