无法将PNG图像保存到文件中

时间:2016-01-16 17:07:33

标签: c++ image qt save png

我在保存图像方面遇到了一些麻烦。我必须裁剪" 1.png"通过rect并将其保存到文件,但是出现一个空的(0字节)。我做错了什么?

void RedactorForm::cropButtonSlot(int x1, int y1, int x2, int y2) {

    QImage pixmap("1.png");
    QRect rect(x1,y1,x2,y2);
    pixmap=pixmap.copy(rect);

    QString fileName("D:/yourFile.png");
    QFile file(fileName);
    file.open(QIODevice::WriteOnly);

    QDataStream out(&file);
    pixmap.save(fileName,0,100);
    out <<pixmap;
}

3 个答案:

答案 0 :(得分:0)

QImage的save方法不会将文件名作为参数,而是使用QFile。试试这个;

    pixmap.save(&file, "PNG");

答案 1 :(得分:0)

您不需要使用QDataStream来执行此任务。直接使用save的{​​{1}}方法。你的代码应该是这样的:

QImage

答案 2 :(得分:0)

我认为您必须关闭之前打开过的文件。您也根本不需要打开文件。你可以这样做:

QRect rect(x1,y1,x2,y2);
QImage pixmap(x2-x1,y2-y1,QImage::Format_ARGB32);
pixmap.copy(rect);

QFile file("D:/yourFile.png");
pixmap.save(file.fileName(),"PNG");