用于将图像加载到纹理,Linux,C和OpenGl中的库


9

我正在寻找用于Linux的简单,自包含的C库,以将文件中的图像加载到OpenGL纹理中。许可证应该相当自由:zlib,bsd,mit或其他。我已经找到SOIL,但是很长一段时间都没有更新。还有其他事情,还是我必须自己写?

PS我使用glfw。仅不推荐使用用于加载图像的功能。

Answers:


5

我将机顶盒图像用于大多数图像加载。一个小的自我不包含任何附加的png和其他文件格式的实现。


3
SOIL是围绕stb_image的包装纸。

啊,我没有意识到。
无效

11

土壤效果很好。谁在乎它是否在很长一段时间内都没有更新?那只是意味着它是稳定且易于理解的。

(实际上是在不久前的2008年进行了更新。)


对于那些现在看到这种情况的人-SOIL在iOS上似乎不起作用,因此,如果您的目标是可移植性,则直接使用stb_image可能是一个更好的选择。
Ed Ropple

2

看一下DevIL


DevIL属于LGPL。这对我来说太严格了。
Michas 2011年

1
请记住,只要不修改原始源代码,就可以链接到LGPL库,并使主代码保持关闭状态/私有状态/用于商业目的。
r2d2rigo 2011年

1
我知道。但是我想将所有内容链接到单个文件中。
Michas 2011年

2

FreeImage。它具有双重许可,您可以选择GPL或自由FreeImage许可。它支持的图像格式远远超过SOIL,并且开发工作很活跃。

该库本身是用C ++编写的,但是具有ANSI C接口。

从其介绍:

凭借其ANSI C接口,FreeImage可用于多种语言,包括C,C ++,VB,C#,Delphi,Java,以及常见的脚本语言,如Perl,Python,PHP,TCL或Ruby。


看起来许可不够宽松。
Michas 2011年

@Michas它所需要的就是确认该库的使用,否则您可以自由修改源代码并用于商业项目。还是我没有足够仔细地阅读许可证?
Oskar N.

我可能被迫发布一些源代码。
Michas 2011年

我不确定您从哪里得到这个主意...您实际上是要修改FreeImage库(提示:可能不是;对自己说实话)?
克里斯(ChrisE)2011年

这不是实际要求。我知道。我只会更自由地获得许可。
Michas 2011年

0

傻傻出品了CEGUI的家伙。

我支持加载PNG,TGA,JPG等。它以MIT许可证发布。

由于该库是用C ++编写的,因此您必须自己编写一个C包装程序。


问题是我想用C编译器编译所有内容。
Michas

0

如果您不需要阅读多种格式,请考虑编写自己的加载器代码。我直接使用libjpeg和libpng,它们很容易使用。两者都具有非常简单的功能,这些功能实际上可获取RGBA数据的扫描线,只需将其放入数组中,然后上传到OpenGL。两者都有非常有用和直接的示例程序。

不过,我没有其他格式的经验。但老实说,PNG + JPEG可以满足我们100%的需求(既不琐碎也不是业余爱好者的水平,请参阅http://www.mysterystudio.com

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.