如何在C ++中读取/加载图像?

时间:2010-02-12 22:59:32

标签: c++ image

我更像是一名java开发人员,有一种阅读图像的标准方法:

    BufferedImage img = null;
try {
    img = ImageIO.read(new File("strawberry.png"));
} catch (IOException e) {
}

但加载图片的c ++方式是什么?我想将特定目录中的所有图像加载到一个数组左右。

6 个答案:

答案 0 :(得分:8)

就个人而言,我更喜欢ImageMagick库。

有许多可用的图形处理库,没有一个选择突出显示优于其他库。我的建议是制作一个3或4的简短列表,看看每个的文档,并尝试用每个编写一个简单的半页程序。使用您个人认为最容易使用的那个。

答案 1 :(得分:7)

C ++中没有标准的“方式”来加载任何其他类型的图像或文件。该功能由(通常是第三方)提供。

在Windows上,您可以使用GDI或DirectX API将图像加载到内存中。

您还可以使用许多不同的库中的任何一个。一些浮现在脑海中的想法:

有许多其他人需要关注,有些可能比其他人更合适,具体取决于您的目标。

例如,如果您只使用JPEG文件,那么您将需要使用libIJG。或者,如果您只使用PNG,则可能会发现libPNGcairo更合适。

答案 2 :(得分:1)

您要用于加载图像的库取决于您打算如何处理它。如果您使用的是QT或wxWidgets等框架,它将提供图像加载例程。

另一种可能性是使用SDL Image库,并在SDL曲面上工作,这将允许您在需要时工作到像素级别。

答案 3 :(得分:1)

查看DevIL

答案 4 :(得分:1)

Qt对图像有很好的支持,并且是免费和跨平台的。

查看qimage class

答案 5 :(得分:1)

我会说,你最接近标准的做法是使用Boost/Adobe Generic Image Library