2017-07-17 6 views
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"; 
    } 
} 

は、残念ながらそれはファイルを作成したことがない:私は新しいイメージを作成する方法

。私は間違って何をしていますか?

+0

のマニュアルを参照してください。通常の配列で保存するだけです。次に、配列を渡す[QImageコンストラクタ](http://doc.qt.io/qt-5/qimage.html#QImage-6)の1つを使用します(2次元ではありません)。 –

答えて

関連する問題