首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库进行2D图像处理

库进行2D图像处理
EN

Software Recommendation用户
提问于 2022-11-18 16:06:05
回答 1查看 40关注 0票数 3

我正在为C++寻找一个2D图像处理库,最理想的是使用C++20的现代工具。

要求:

  • 在Windows 10上工作(主要支持Windows文件名)
  • 使用Visual 2022 (请不要使用makefile)
  • 简单地包含(可能只包含头文件;理想情况下只包含几个文件),就像GLFW (如果您知道的话)
  • 仅在被恶搞时才产生警告。
  • 我只需要像这样的基本操作
    • 获取像素/设置像素
    • 绘制直线、椭圆和矩形

  • 支持PNG文件(JPG和BMP欢迎)、读写
  • 免费提供

非所需:

  • 在屏幕上显示图像

我试过:

  • Magick++
    • 这个网站说它可以使用Windows 7
    • 下载位置不清楚的'win2k‘子目录的ImageMagick ftp站点(和镜像)
    • Visual版本已经过时,现成的VisualWeb8.0构建环境已经过时。

  • 勒普罗尼卡
    • 看起来很像C-ish,而不是C++-ish。
EN

回答 1

Software Recommendation用户

回答已采纳

发布于 2022-12-05 12:32:56

我发现SFML适合我的需要。

我真的很喜欢这个方法的名字。他们是直截了当的,IMHO。不神秘的或缩写的。

所需经费:

  • 在Windows 10上工作
  • 使用2022。下载网站提到VisualStudio2017是最新的版本,但当我在Github上打开一个问题时,答案是VS2017版本与VS2019和VS2022兼容。
  • 很简单就包括了。可视化教程告诉你你需要做什么。基本上添加一些路径,这样就可以找到SFML --在Visual中进行C++开发时,您知道该如何做。
  • 获取像素/设置像素,我使用的代码非常简单
代码语言:javascript
复制
    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");
  • 支持PNG文件(JPG和BMP欢迎),读写是绝对可能的,请参阅前面的代码。
  • 免费zlib/png许可

将图像显示为窗口并不是那么直接。它不能在窗户上画图像。它需要一个雪碧来做这个。雪碧需要一种质地。我看到这可能对游戏开发有好处,如果纹理被重复使用,可能会加快速度。因此,代码比较复杂,但还是可以的:

代码语言:javascript
复制
    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();
    }
票数 0
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/84594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档