QFile outFile;
outFile.open(stdout, QFile::WriteOnly);
QDataStream st(&outFile);
st << arr;
Вот так вот тоже добавляются лишние байты и картинка косячно выводится
Потому что DataStream сериализует объекты, сохраняя их в своем формате.
А сериализованное
представление предваряется типом данных ("лишние байты").