【问题标题】:Creating and Saving an image in C++ VS在 C++ VS 中创建和保存图像
【发布时间】:2016-10-11 10:11:01
【问题描述】:

我的问题简介:

我有很多坐标点(x,y)需要绘制并保存为文件夹中的图片。我需要使用 C++ 编写代码。

详细说明:

假设我有 n 个坐标点 (x ,y)。我有两个功能,即“跳跃”和“标记”。

函数调用将始终按此顺序进行:

跳跃(x,y)

标记(x,y)

跳跃(x,y)

标记(x,y)

........这个序列一直持续到所有坐标点都被认为完成为止。

1)第一个跳转函数会指向当前坐标位置/起始位置。

2)所有标记函数都会从上一个跳转函数坐标到它接收到的坐标画一条连续的线。

3)其余的跳转函数(除了第一个跳转函数)会从之前的标记坐标画一条虚线/虚线直到它收到的坐标。所以这条线会告诉我们跳转函数从哪里跳转到绘制下一条标记线(参考附图以获得更好的清晰度)

我如何实现它? C++ 中的任何图形库可用于执行我想要的简单绘图和保存图像?

我阅读了一些图形库,如 SDL、OpenCV、OpenGL、PNGWriter。 但不确定是什么以及如何使用。

我已经展示了一个我想做的小例子,它作为图像附加。 Click here for the Image

【问题讨论】:

  • SDL, OpenCV, OpenGL 不是你想要的。看看 libpng。只要您可以将原始像素值数组保存为图像文件,绘图部分就很容易了。

标签: c++ graphics sdl


【解决方案1】:

我使用opencv,但它不支持虚线,而在此链接中有一个opencv dotted line dotted and dashed rectangle in OpenCV 中的虚线指南,对于您的程序,您可以创建具有所需大小的白色图像并绘制逐行表征起点和终点坐标并应用函数: Line draw 您可以将最新点的坐标存储在 Point 变量中....

【讨论】:

    【解决方案2】:

    我建议你使用Allegro,它比OpenCV 更简单、更轻量。我相信这会更加敏捷。 这个link你可以找到VS的二进制文件(~44MB)(选择适合你的版本)。

    解压压缩文件。您将看到 include\、lib\ 和 bin\ 目录。在 Visual Studio 中适当地链接它们(this 是完整的教程)。

    Here 您将掌握读取、写入和显示图像(位图)的基础知识。

    我认为函数 al_draw_line() 将帮助您完成这项特定任务。

    【讨论】:

      猜你喜欢
      • 2016-02-02
      • 2010-12-20
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2017-01-09
      相关资源
      最近更新 更多