保存CImage会出现错误:标识符" ImageFormatJPEG"未定义

时间:2014-11-14 22:10:03

标签: image visual-studio-2012 save jpeg gdi+

我正在使用Visual Studio 2012。 我试图使用以下内容将CImage保存为jpg:

theImage.Save(filePathAndName, Gdiplus::ImageFormatJPEG);

link to Microsoft example using CImage::Save所示。

但是,Visual Studio提供错误:

Error: identifier "ImageFormatJPEG" is undefined

为什么我收到此错误?

注意,我已经包含以下内容:

#include <gdiplus.h>

另外,我查看了gdiplus.h并看到以下行:

#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

包括#include "GdiplusImaging.h"等。 GdiplusImaging.h也使用

#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

包括

DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);

我认为这可能会导致问题,但我还没想到它。

2 个答案:

答案 0 :(得分:1)

我无法使用

直接指定图像格式
Gdiplus::ImageFormatJPEG

作为保存功能的第二个参数。

但是,正如Microsoft's CImage::Save

所述
  

如果未包含guidFileType参数,则将使用文件名的文件扩展名来确定图像格式。

因此,我做了以下事情:

char *filePathAndName = "C:\\Projects\\AcesHyAcceptanceTestScreenShot2.jpg";
theImage.Save(filePathAndName);

将CImage保存为jpeg。

如果有人知道该修复程序可以使用Gdiplus::ImageFormatJPEG,请发布解决方案。

答案 1 :(得分:1)

包括&#34; atlimage.h&#34;应该适合你。