0
イメージの行データを取得し、それを符号なし文字配列に保持しています。次に、そのデータから新しいイメージファイルを作成しようとしています。生データを新しいファイルとして保存する
はどうやってデータを取得します:
for(int i = 0; i < x; i++) {
for(int j = 0; j < y; j++) {
byteArray[i][j] = *((image.bits() + i) + j);
}
}
ここで、x - イメージの>幅、Y - >画像の高さ。また、私はbits()が最初のピクセルデータへのポインタを返すことを理解しているので、 "i"と "j"でポインタを移動できます。私は255,252,120などの値(r、g、b、ピクセル値)の配列を持っています。
void saveFile(unsigned char **array, const int &x, const int &y) {
QImage newImage(x, y, QImage::Format_ARGB32);
newImage.loadFromData((const unsigned char*)array, x * y, "JPG");
bool success = newImage.save("przerobione", "JPG", -1);
if(success == true) {
qDebug() << "Zapisano!";
}
else {
qDebug() << "nope";
}
}
は、残念ながらそれはファイルを作成したことがない:私は新しいイメージを作成する方法
。私は間違って何をしていますか?
のマニュアルを参照してください。通常の配列で保存するだけです。次に、配列を渡す[QImageコンストラクタ](http://doc.qt.io/qt-5/qimage.html#QImage-6)の1つを使用します(2次元ではありません)。 –