所以我正在开发一个程序,用于生成随机选择颜色形状的图像。并且我想保存输出的图像,这样我就可以在图像上使用着色器,如模糊,以及出于任何目的的输出文件。这是我窗口的主循环。
while (window.isOpen())
{
Event event;
while (window.pollEvent(event))
{
if (event.type == Event::Closed)
window.close();
}
window.clear(Color::Black);
for (int i = 0; i < rectangles.size(); i++)
window.draw(rectangles[i]);
Texture outputTexture;
outputTexture.create(width, height);
outputTexture.update(window);
Image output;
output.create(width, height);
output = outputTexture.copyToImage();
output.saveToFile("output.png");
Sprite sprite;
sprite.setTexture(outputTexture);
window.clear();
window.draw(sprite);
window.display();
}
我用精灵测试了这个,窗口正确地绘制了精灵。但是我在这里收到错误
output.saveToFile("output.png");
在name.exe中的0x00007FF8D1527190(sfml-graphics-2.dll)抛出异常:0xC0000005:访问冲突读取位置0xFFFFFFFFFFFFFFFF。
我似乎无法弄清楚问题,我真的需要能够将图像保存到文件中。谢谢大家的帮助