Я искал простую и маленькую, но надежную и быструю ( не всеобъемлющую!) библиотеку изображений для С++ (C было бы достаточно, если версия С++ не доступна).
Основные функции, которые я ищу:
- Бесплатный (openource - плюс)
- Построено для скорости
- Нет огромного функционального вздутия (например,
ImageMagik
, который поистине всеобъемлющий, но является мамонтом). - Крошечный объем памяти
- Поддерживает только абсолютный минимум таких функций, как загрузка/сохранение, изменение размера, преобразование между форматами. Ничего необычного
- Восстановление ошибок для "сломанных" файлов (в отличие от
stb_image.c
, у которого довольно плохое восстановление ошибок) - MSVC и gcc дружественные (я использовал
CxImage
в течение нескольких лет, но с последней версией у меня проблемы с MSVC 2010, и казалось бы, что активное развитие и поддержка для него уже вымерли, поэтому я 'm собирается бросить его) - Следует поддерживать популярные современные форматы, такие как JPEG2000, либо напрямую, либо с помощью общих библиотек, таких как
libpng
- Не волнует, если это DirectX или OpenGL, поскольку я не планирую использовать его для отображения изображений - только для их обработки на веб-сайте
- Поддержка как статической, так и динамической компоновки - это плюс
- Поддержка потоков - огромный плюс
Библиотеки, на которые я смотрел и увольнялся по тем или иным причинам:
- CxImage (больше нет активной разработки)
- ImageMagik - слишком большой (и медленный)
- stb_image.c - неправильная обработка ошибок, не поддерживает достаточное количество форматов изображений
- DevIL (havn't еще не уволен, но на него тоже не смотрел - только узнал об этом несколько минут назад на аналогичной должности на SO) - на основе этого размера и набора функций он выглядит очень многообещающим для чего Мне нужно, но
- FreeImage (то же, что и DevIL - посмотрит на него в ближайшее время, но немного по размеру).
- SOIL (то же, что и stb_image.c)
- TimThumb - это PHP, а не C/С++
Короче говоря, я просто хочу как можно меньше и как можно быстрее за счет просто абсолютного минимального функциональности, но пока я еще не нашел подходящего кандидата.
Любые предложения от этого сообщества, пожалуйста? Но имейте в виду ограничения, перечисленные выше - я не думаю, что это нормально, чтобы ответить на форму "вы попробовали X?". где "X" не удовлетворяет половину моих потребностей:)
Изменить: немного взглянув на DevIL, казалось, что это может быть то, что мне нужно. Он легкий, крошечный, прочный. Теперь мне просто нужно убедиться, что он работает. О, и CImage (я забыл упомянуть об этом в списке) - мне не понравилась производительность (хотя я должен признать, что идея реализации только шаблона мила, если не сказать больше)