我正在为C++寻找一个2D图像处理库,最理想的是使用C++20的现代工具。
要求:
非所需:
我试过:
发布于 2022-12-05 12:32:56
我发现SFML适合我的需要。
我真的很喜欢这个方法的名字。他们是直截了当的,IMHO。不神秘的或缩写的。
所需经费:
sf::Image buffer;
buffer.create(size, size, sf::Color(0, 0, 0));
// some loop here
buffer.setPixel(x, y, sf::Color::Green);
buffer.saveToFile("test.png");将图像显示为窗口并不是那么直接。它不能在窗户上画图像。它需要一个雪碧来做这个。雪碧需要一种质地。我看到这可能对游戏开发有好处,如果纹理被重复使用,可能会加快速度。因此,代码比较复杂,但还是可以的:
sf::RenderWindow window(sf::VideoMode(1000, 1000), "Visualization");
sf::Image buffer;
buffer.create(size, size, sf::Color(0, 0, 0));
// Some loop here
buffer.setPixel(x, y, sf::Color::Green);
sf::Texture texture;
texture.create(size,size);
texture.update(buffer);
sf::Sprite sprite;
sprite.setTexture(texture);
sprite.setPosition(sf::Vector2f(0.f, 0.f));
sprite.scale(1000.f / size, 1000.f / size);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(sprite);
window.display();
}https://softwarerecs.stackexchange.com/questions/84594
复制相似问题