Вопрос

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

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

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

Любые идеи по этому поводу были бы потрясающими.

Это было полезно?

Решение

Пытаться Антизернистая геометрия.Из описания:

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

  • Сглаживание.
  • Субпиксельная точность.
  • Максимально возможное качество.
  • Высокая производительность.
  • Независимость от платформы и совместимость.
  • Гибкость и расширяемость.
  • Легкий дизайн.
  • Надежность и стабильность (в том числе численная стабильность).

Другие советы

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

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

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

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

http://www.antigrain.com/

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top