Perpustakaan untuk memuat gambar ke dalam tekstur, Linux, C dan OpenGl


9

Saya mencari pustaka C sederhana untuk Linux untuk memuat gambar dari file ke tekstur OpenGL. Lisensi harus cukup liberal: zlib, bsd, mit atau sesuatu. Saya telah menemukan TANAH , namun belum diperbarui untuk waktu yang lama. Apakah ada sesuatu yang lain, atau saya harus menulis sendiri?

PS Saya menggunakan glfw. Hanya ada fungsi yang tidak digunakan lagi untuk memuat gambar.

Jawaban:


5

Saya menggunakan STB Image untuk memuat gambar yang paling. Cukup kecil berisi tidak ada string terlampir implementasi png dan format file lainnya.


3
SOIL adalah pembungkus ringan di sekitar stb_image.

Ah, saya tidak menyadarinya.
batal

11

Tanah bekerja dengan baik. Siapa yang peduli jika belum diperbarui dalam "waktu yang lama"? Itu hanya berarti itu stabil dan dipahami dengan baik.

(Sebenarnya telah diperbarui pada 2008, yang belum lama sekali.)


Bagi yang melihat ini sekarang - SOIL sepertinya tidak berfungsi di iOS, jadi jika portabilitas adalah tujuan Anda, menggunakan stb_image secara langsung mungkin merupakan opsi yang lebih baik.
Ed Ropple

2

Lihatlah Iblis .


Setan berada di bawah LGPL. Ini agak terlalu membatasi bagi saya.
Michas

1
Ingatlah bahwa selama Anda tidak mengubah kode sumber asli, Anda dapat menautkan ke perpustakaan LGPL dan menjaga kode utama Anda tetap tertutup / pribadi / digunakan untuk tujuan komersial.
r2d2rigo

1
Aku tahu. Namun saya ingin menautkan semuanya ke dalam satu file.
Michas

2

Lihat FreeImage . Berlisensi ganda, Anda dapat memilih GPL atau lisensi FreeImage liberal. Ini mendukung format gambar yang jauh lebih banyak daripada TANAH dan pengembangan aktif.

Pustaka itu sendiri ditulis dalam C ++, tetapi memiliki antarmuka ANSI C.

Dari pengantar:

Berkat antarmuka ANSI C, FreeImage dapat digunakan dalam banyak bahasa termasuk C, C ++, VB, C #, Delphi, Java dan juga dalam bahasa scripting umum seperti Perl, Python, PHP, TCL atau Ruby.


Sepertinya lisensinya tidak cukup liberal.
Michas

@Michas Semua itu mengharuskan Anda untuk mengakui penggunaan perpustakaan, jika tidak Anda bebas untuk memodifikasi sumber dan digunakan dalam proyek komersial. Atau mungkin saya tidak cukup membaca lisensi?
Oskar N.

Saya mungkin terpaksa menerbitkan beberapa kode sumber.
Michas

Saya tidak yakin dari mana Anda mendapatkan ide itu ... apakah Anda benar-benar akan memodifikasi perpustakaan FreeImage (petunjuk: mungkin tidak; jujurlah dengan diri Anda sendiri)?
ChrisE

Ini bukan persyaratan praktis. Aku tahu. Saya hanya akan lebih bahagia dengan lisensi yang lebih liberal.
Michas

0

Konyol diproduksi orang- orang CEGUI .

Saya mendukung memuat PNG, TGA, JPG, dll. Dan dirilis dengan lisensi MIT.

Anda harus menulis bungkus C sendiri karena pustaka ditulis dalam C ++.


Masalahnya adalah saya ingin mengkompilasi semuanya dengan kompiler C.
Michas

0

Jika Anda tidak perlu membaca banyak format, pertimbangkan untuk menulis kode loader Anda sendiri. Saya menggunakan libjpeg dan libpng secara langsung dan sangat mudah digunakan. Keduanya memiliki fungsi yang sangat sederhana yang pada dasarnya mengambil scanline data RGBA, cukup masukkan itu ke dalam array dan kemudian unggah ke OpenGL. Keduanya memiliki program contoh yang sangat berguna dan langsung.

Saya tidak punya pengalaman dengan format lain. Tapi jujur, PNG + JPEG mencakup 100% dari kebutuhan kita (yang tidak sepele atau tingkat hobi - lihat http://www.mysterystudio.com )

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.