【问题标题】:Is it possible to create an image with C++?是否可以使用 C++ 创建图像?
【发布时间】:2010-08-23 02:26:39
【问题描述】:

你能在 windows 上用 C++ 创建 PNG、GIF 等吗?

如果可能,怎么做?例如,如何使 png 图像只有一种纯色。

只是一个“你好世界”的例子会很棒......

【问题讨论】:

  • 您可以使用输入/输出库将二进制数据写入文件,因此,是的,您可以在 C++ 中创建图像。您到底想对您要创建的这些图像做什么?您的软件需要在什么平台上运行?没有更多细节,很难回答您的问题。
  • 重新创建/写入二进制输出 - 要了解简单的图像格式,请查看 w3.org/TR/PNG。 (JPEG 要复杂得多。)下面建议的库对于初学者来说是一种更实用的方法。

标签: c++ image file


【解决方案1】:

当有人问你关于 Hello world 的问题时,只需说 Hello world ...

#include "opencv/cxcore.h"
#include "opencv/cv.h"
#include "opencv/highgui.h"

int _tmain(int argc, _TCHAR* argv[])
{
    cv::Mat image(480, 640, CV_8UC3);
    cv::putText(image, "Hello world", cvPoint(320, 200), 
        CV_FONT_HERSHEY_SIMPLEX, 1, cvScalar(255, 0, 0));
    cv::imwrite("output.tif", image);
    return 0;
}

【讨论】:

    【解决方案2】:

    对于 PNG,请试用 PNGWriter 库:http://pngwriter.sourceforge.net/

    【讨论】:

      【解决方案3】:

      是的,可以这样做。一些用于图像处理的库包括 ImageMagick/GraphicsMagick(相同的 API)、CImgOpenCV。 OpenCV 是迄今为止最强大但也是最难使用的。 CImg 可能是最容易使用的,我强烈推荐给初学者……你基本上创建一个 CImg 类型的实例,填充像素,然后调用“save”,它会自动推断类型并且知道如何根据您提供的文件扩展名对其进行编码。

      【讨论】:

      • c++中如何获取png图片的大小?
      【解决方案4】:

      图像只是二进制文件,C++ 可以轻松编写二进制文件。图像格式包含许多复杂的压缩算法,因此这样做并不容易。

      通常最好使用可以为您处理此类文件的加载/保存的 C++ 库,这样您就可以担心更重要的事情,比如您实际上希望这些图片包含在其中。

      Imaghttp://www.imagemagick.org 是一个被多个开源项目使用的流行工具,但还有很多其他项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-05
        • 2012-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多