1

需要能够使用 VC++ 2012 放大/缩小/调整 bmp、jpeg、png、gif、raw 或 tiff 类型的图像。我必须使用一些第三方库吗?你能给我一些想法吗?VC++ 新手。非常感谢!

4

3 回答 3

3

如果您使用的是 Visual C++,我假设您的目标是 Windows 环境。如果是这样,那么Windows 映像组件可能会提供您所追求的。它具有内置支持

  • BMP
  • JPEG
  • PNG
  • 国际电影节
  • 高清照片

编解码器也可能是为其他格式编写的。

于 2013-05-28T22:26:30.440 回答
1

你的问题实际上有两个部分。首先是如何阅读您列出的多种类型的图像;第二个是如何以非原始尺寸显示图像。我会回答第二个。

在位图中拥有图像后,您可以使用StretchBltStretchDIBits将其绘制到设备上下文 (DC)。您使用矩形参数来确定要显示图像的哪个部分,以及您希望它占据屏幕的哪个部分。如果这些矩形的大小不同,图像将自动调整大小。

于 2013-05-28T22:28:36.480 回答
0

GDI+ 至少支持您列出的大多数图像格式,并且可以很容易地显示缩放图像。根据您所说的“原始”的含义,它可能还不够——据我所知,它不支持相机原始格式。

如果您需要对相机原始格式的支持,有很多替代方案——例如, CXImage支持许多相机原始格式,我不确定它是否具有最新最好的 DCRAW 版本,所以它可能不支持所有最新的相机。

另一个可能值得考虑的是DevIL,即开发人员的图像库。同样,支持多种格式,包括(我相信)您提到的所有格式(再次,在某种程度上取决于您所说的“原始”)。

于 2013-05-28T22:52:07.153 回答