【发布时间】:2022-11-14 00:58:10
【问题描述】:
我希望在 Qt 中使用 QImage 来加载和保存图像。虽然我可以加载图像,但无论出于何种原因,它都不会让我保存图像。
所以我开始编写一个简单的代码,使用 paint 制作了一个简单的 png 测试文件,并将其放入与项目本身相同的文件夹中。
#include <QImage>
#include <iostream>
int main(){
QImage image;
image.load("test.png");
if (image.isNull()){
std::cout << "ERROR!\n";
}
else{
std::cout << "IMAGE LOADED!\n";
}
image.save("test1.png");
return 0;
}
在运行程序期间,我收到“图像已加载!”的消息。从应用程序输出中,但是当我检查文件夹时,我希望保存为 test1.png 的相同图像根本不会出现。
那么,我如何实际保存图像?我错过了什么?
【问题讨论】:
-
此代码按原样工作。我可以打开并保存图像。您可能需要仔细检查您是否正在查找正确的文件夹(影子构建等可能会造成混淆)。我使用 Qt Kit 版本 5.15.2。
-
“如果图像保存成功,则返回 true;否则返回 false。” - 你的
image.save("test1.png");的返回值是多少?也许是只读工作目录或类似的东西。 -
@L.C.你的意思是新生成的文件应该与项目在同一个文件夹中?我以为它会在那里?我具体在哪里检查?
-
@pptaszni您的意思是 image.save() 函数的返回值?如果我使用以下代码`int i = image.save(string); std::cout << i << "\n";` 它返回一个 1。
-
@user19905318 当您从 IDE(应该是 Qt Creator?)运行应用程序时,工作目录在左侧“项目”选项卡的“运行设置”中设置。无论可执行文件放置在何处,您的应用程序都是从该路径启动的。因此,图像可能不会写入您期望的位置,而是写入那里设置的工作目录。在我的测试中,图像被写入影子构建文件夹中。