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


9

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

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

Ответы:


5

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


3
SOIL - это легкая оболочка вокруг stb_image.

Ах, я не знал об этом.
аннулировано

11

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

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


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

2

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


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 ++.


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

0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.