简单的C ++图形库

时间:2009-12-17 19:56:06

标签: c++ graphics cairo

对于一个简单的C ++库的任何建议我可以用来创建一个指定大小的图像,具有固定的rgb颜色值或理想地支持渐变。

需要在Windows上工作,理想情况下也不需要在OS X上工作。

我找到了开罗,但只是想知道是否还有其他任何东西,因为它看起来很简单。

8 个答案:

答案 0 :(得分:6)

Cairo是此任务的特殊库。如果你认为它有点矫枉过正,我可以向你保证,它绝对不是一个臃肿或大型的图书馆。开罗意味着完全符合您的需求。请注意,如果您需要能够在图像上设置文本,则需要一个排版库,例如Pango(可以很好地使用它)。

也就是说,此类别中的大多数其他库都是用于游戏(如Allegro),或仅限于位图操作(如libGd和ImageMagick)。开罗是为应用程序生成的矢量图像而设计的。

答案 1 :(得分:3)

Qt图像包括渐变等,是可移植的,使用C ++并且具有相当不错的文档和大量examples。然而,它不是最小的图书馆,但我对此非常满意。

答案 2 :(得分:3)

CImg library易于使用,允许编写简洁的代码,并在单个头文件中定义。给出了多个例子。

答案 3 :(得分:1)

Juce可能会做你想要的。它可以绘制图像并用渐变填充区域,并支持Windows,Linux和Mac。没有更具体的信息,除此之外无法帮助。

答案 4 :(得分:1)

你试过了吗?

电晕

http://corona.sourceforge.net/

如果您不需要抖动,只需填充RGB帧缓冲区并将其传递给Corona进行输出。如果你需要抖动或比特深度的转换,那你就不走运了。

你应该检查它的安全性以及它包含的C库的补丁级别,因为Corona似乎是多年前的最后一次更新,但它基本上是一个相当薄的C ++层,位于GIF,JPEG和PNG的C库之上本地BMP和PCX支持。

答案 5 :(得分:1)

我通常使用gd library,php(以及其他)使用的相同库,通常用于创建CAPTCHA。但你基本上可以随心所欲地做任何事情。

答案 6 :(得分:1)

Anti-Grain Geometry更多样本。

答案 7 :(得分:0)

我碰巧有与你类似的要求: 我想绘制一些基本的2D形状,并希望在何时使用透明特征 一些形状重叠。

在我阅读开罗的文件后,我发现要记住很多概念。 因此,我进行了自己的搜索并找到了PNGwriter。 虽然有点过时我必须稍微修改源代码才能使用libpng1.4进行编译,但语法非常直观,正是我想要的。 例如,您使用pngwritter::filledcircle绘制填充的矩形。

看看它绘制数学函数的例子:

http://pngwriter.sourceforge.net/quickstart-en.php

#include <pngwriter.h>


int main()
{
   int i;
   int y;

   pngwriter png(300,300,0,"test.png");

   for(i = 1; i < 300;i++)
     {
        y = 150+100*sin((double)i*9/300.0);

        png.plot(i,y, 0.0, 0.0, 1.0);
     }

   png.close();

   return 0;
}

结果是:

result

Mac OS X 10.6.7附带freetype和libpng,您只需更新即可 根据编译错误的来源,只是一些快速的黑客攻击。