Библиотека для загрузки изображений в текстуры, Linux, C и OpenGl

9

Я ищу простую автономную библиотеку C для Linux для загрузки изображений из файлов в текстуры OpenGL. Лицензия должна быть довольно либеральной: zlib, bsd, mit или что-то в этом роде. Я нашел ПОЧВУ , но она давно не обновлялась. Есть ли что-то еще, или я должен написать свой собственный?

PS я использую glfw. Есть только устаревшие функции для загрузки изображений.

Михас
источник

Ответы:

5

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

недействительно
источник
3
SOIL - это легкая оболочка вокруг stb_image.
Ах, я не знал об этом.
аннулировано
11

ПОЧВА прекрасно работает. Кого волнует, если это не было обновлено в течение "долгого времени"? Это просто означает, что он стабилен и понятен.

(На самом деле он был обновлен в 2008 году, что совсем недавно.)

user744
источник
Для тех, кто видит это сейчас - кажется, что SOIL не работает на iOS, поэтому, если ваша цель - переносимость, лучше использовать stb_image напрямую.
Эд Роппл
2

Посмотрите на DevIL .

r2d2rigo
источник
DevIL находится под LGPL. Это слишком ограничительно для меня.
Михас
1
Имейте в виду, что до тех пор, пока вы не измените исходный код, вы можете ссылаться на библиотеку LGPL и держать свой основной код закрытым / закрытым / используемым в коммерческих целях.
r2d2rigo
1
Я знаю. Однако я хочу связать все в один файл.
Михас
2

Проверьте FreeImage . Он имеет двойную лицензию, вы можете выбрать либо GPL, либо либеральную лицензию FreeImage. Он поддерживает гораздо больше форматов изображений, чем SOIL, и разработка активна.

Сама библиотека написана на C ++, но имеет интерфейс ANSI C.

Из его введения:

Благодаря интерфейсу ANSI C, FreeImage может использоваться на многих языках, включая C, C ++, VB, C #, Delphi, Java, а также на распространенных языках сценариев, таких как Perl, Python, PHP, TCL или Ruby.

Оскар Н.
источник
Похоже, лицензия недостаточно либеральна.
Михас
@Michas Все, что от вас требуется, это признать использование библиотеки, в противном случае вы можете изменять исходные коды и использовать их в коммерческих проектах. Или, может быть, я недостаточно внимательно прочитал лицензию?
Оскар Н.
Я могу быть вынужден опубликовать часть исходного кода.
Михас
Я не уверен, откуда у вас эта идея ... Собираетесь ли вы на самом деле изменить библиотеку FreeImage (подсказка: возможно, нет; будьте честны с собой)?
ChrisE
Это не практическое требование. Я знаю. Я просто был бы счастлив с более либеральной лицензией.
Михас
0

Глупый продюсеры CEGUI .

Я поддерживаю загрузку PNG, TGA, JPG и т. Д. И он выпущен с лицензией MIT.

Вы должны были бы написать обертку C самостоятельно, поскольку библиотека написана на C ++.

deft_code
источник
Проблема в том, что я хочу скомпилировать все с помощью компилятора Си.
Михас
0

Если вам не нужно читать много форматов, подумайте о написании собственного кода загрузчика. Я использую libjpeg и libpng напрямую, и они довольно просты в использовании. Обе имеют очень простые функции, которые по сути извлекают строку сканирования данных RGBA, просто помещают ее в массив и затем загружают в OpenGL. Оба имеют очень полезные и простые примеры программ.

У меня нет опыта работы с другими форматами. Но, если честно, PNG + JPEG покрывает 100% наших потребностей (которые не являются ни тривиальными, ни увлеченными - см. Http://www.mysterystudio.com )

ggambett
источник