0
我正在获取图像行数据并将其保存在unsigned char数组中。接下来我试图从这些数据中创建新的图像文件。将原始数据保存为新文件
如何获得数据:
for(int i = 0; i < x; i++) {
for(int j = 0; j < y; j++) {
byteArray[i][j] = *((image.bits() + i) + j);
}
}
其中x - >宽度图像,Y - >图像的高度。另外据我了解bits()返回指向第一个像素数据,所以与“我”和“j”我可以移动该指针。因为我有255,255,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";
}
}
不幸的是,从不创建文件。我究竟做错了什么 ?
您没有假设以图像原始数据保存到2维阵列。只需将其保存在普通数组中。然后使用其中一个[QImage构造函数](http://doc.qt.io/qt-5/qimage.html#QImage-6)传递数组(不是2维)。 –