Кроссплатформенная библиотека чертежей - PullRequest
14 голосов
/ 29 июля 2009

Я искал хорошую кроссплатформенную библиотеку 2D-рисования, которую можно вызывать из C ++ и которую можно использовать для рисования довольно простой геометрии; линии, прямоугольники, круги и текст (горизонтальный и вертикальный) для некоторых диаграмм и сохраните вывод в формате PNG.

Я думаю, что коммерческий пакет предпочтительнее открытого источника, потому что мы бы предпочли не беспокоиться о проблемах с лицензированием (если только не имеется лицензии типа BSD без условия кредитования). Я посмотрел на Cairo Graphics, которая выглядела многообещающе, но рендеринг текста выглядит как дерьмо из коробки, а обновление текстового бэк-энда приводит нас к мутной лицензии.

Мне это нужно для Windows, Mac и Linux. Желательно что-то довольно легкое и простое в интеграции. Я думал о Qt, но это слишком тяжело для нашего приложения.

Любые идеи по этому поводу были бы замечательными.

Ответы [ 11 ]

13 голосов
/ 29 июля 2009

Попробуйте Антизерновая геометрия . Из описания:

Anti-Grain Geometry (AGG) - это бесплатная графическая библиотека с открытым исходным кодом, написанная на промышленном стандарте C ++. Условия использования AGG описаны на странице «Лицензия». AGG не зависит от какого-либо графического API или технологии. По сути, вы можете думать о AGG как о механизме рендеринга, который создает пиксельные изображения в памяти из некоторых векторных данных. Но, конечно же, AGG может сделать гораздо больше. Идеи и философия AGG:

  • Anti-Aliasing.
  • Точность субпикселя.
  • Максимально возможное качество.
  • Высокая производительность.
  • Независимость от платформы и совместимость.
  • Гибкость и расширяемость.
  • Легкая конструкция.
  • Надежность и стабильность (включая числовую стабильность).
7 голосов
/ 10 марта 2011

Еще один: Skia . Используется в Android и Chrome, в активной разработке, ускорение HW.

5 голосов
/ 29 июля 2009

Посмотрите на SFML . Это открытый исходный код, но лицензия очень разрешительная.

Рисование простых фигур
Отображение текста

2 голосов
/ 29 июля 2009

Antigrain выполняет высококачественный примитивный рендеринг, и, похоже, способен отображать шрифты истинного типа и имеет коммерческую лицензию, доступную по запросу.

http://www.antigrain.com/

1 голос
/ 18 ноября 2012

Вы можете использовать Allegro 5 (поскольку упоминаются SDL и SFML). Это обеспечивает все необходимые вам платформы (и даже больше) и может отображать фигуры и сохранять их в формате PNG. Версия 5 имеет значительно улучшенный API и аппаратное ускорение. С любой из этих низкоуровневых кроссплатформенных библиотек вам придется искать собственное решение для построения графиков.

Я добавил несколько заметок в свой блог об Allegro и использовании его на Mac.

1 голос
/ 27 января 2010

Я использую CImg : кроссплатформенный (отдельный файл заголовка), простой, сжатый. PNG изначально не поддерживается, но может обрабатываться, если установлен ImageMagick (см. поддерживаемые форматы ).

См. Также связанный вопрос .

1 голос
/ 23 января 2010

Существует также libgd - простой, но хорошо написанный.

Относительно Каирская графика , я не могу поверить в это делает текст , который выглядит плохо. Если вас особенно волнует рендеринг текста, Состояние рендеринга текста с января 2010 года дает неплохой обзор.

1 голос
/ 29 июля 2009

Вы пробовали FLTK ? Он легкий, кроссплатформенный, имеет поддержку 2D / 3D-графики и поставляется с хорошим набором виджетов (включая компонент построения диаграмм). API прост и понятен.

1 голос
/ 29 июля 2009
0 голосов
/ 17 августа 2009

Я бы пошел на AGG или Каир.

...