我正在获取图像行数据并将其保存在unsigned char数组中。接下来,我尝试从该数据创建新的图像文件。
如何获取数据:
for(int i = 0; i < x; i++) {
for(int j = 0; j < y; j++) {
byteArray[i][j] = *((image.bits() + i) + j);
}
}
其中x - &gt;图像宽度,y - &gt;图像的高度。另外据我所知,bits()返回指向第一个像素数据的指针,因此使用&#34; i&#34;和&#34; j&#34;我可以移动那个指针。有了这个,我有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";
}
}
不幸的是它永远不会创建文件。我究竟做错了什么 ?
答案 0 :(得分:0)