我更像是一名java开发人员,有一种阅读图像的标准方法:
BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.png"));
} catch (IOException e) {
}
但加载图片的c ++方式是什么?我想将特定目录中的所有图像加载到一个数组左右。
答案 0 :(得分:8)
就个人而言,我更喜欢ImageMagick库。
有许多可用的图形处理库,没有一个选择突出显示优于其他库。我的建议是制作一个3或4的简短列表,看看每个的文档,并尝试用每个编写一个简单的半页程序。使用您个人认为最容易使用的那个。
答案 1 :(得分:7)
C ++中没有标准的“方式”来加载任何其他类型的图像或文件。该功能由(通常是第三方)库提供。
在Windows上,您可以使用GDI或DirectX API将图像加载到内存中。
您还可以使用许多不同的库中的任何一个。一些浮现在脑海中的想法:
有许多其他人需要关注,有些可能比其他人更合适,具体取决于您的目标。
例如,如果您只使用JPEG文件,那么您将需要使用libIJG。或者,如果您只使用PNG,则可能会发现libPNG或cairo更合适。
答案 2 :(得分:1)
您要用于加载图像的库取决于您打算如何处理它。如果您使用的是QT或wxWidgets等框架,它将提供图像加载例程。
另一种可能性是使用SDL Image库,并在SDL曲面上工作,这将允许您在需要时工作到像素级别。
答案 3 :(得分:1)
查看DevIL
答案 4 :(得分:1)
Qt对图像有很好的支持,并且是免费和跨平台的。
答案 5 :(得分:1)
我会说,你最接近标准的做法是使用Boost/Adobe Generic Image Library。