所以我正在开发一个程序,生成具有随机选择颜色形状的图像 . 并且我想保存输出的图像,这样我就可以在图像上使用着色器,如模糊,以及出于任何目的的输出文件 . 这是我窗口的主循环 .

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 .

我似乎无法弄清楚问题,我真的需要能够将图像保存到文件中 . 谢谢大家的帮助