JPEG通过grid32在C中通过Win32 API加载/保存到rgba

时间:2015-05-17 20:59:56

标签: c winapi jpeg gdi

我希望能够通过api在Windows上加载/保存jpeg文件,特别是gdi32.dll,因为它看起来普遍存在于所有版本的Windows中。

但我无法从每种颜色4个字节的像素数组中找到有关如何执行此操作的任何信息(rgba,bgra,rgb可以,因为jpeg不支持alpha等。 )

对外部库或gdi +不感兴趣。 gdi32应该有能力,但我似乎无法找到有关如何实现它的足够信息。

3 个答案:

答案 0 :(得分:2)

普通GDI对JPEG没有任何支持。

如果你不赞成使用GDI之外的库,那么你将不得不编写自己的JPEG库。请允许我建议您重新考虑您的要求。

答案 1 :(得分:2)

我将忽略你拒绝使用gdi32.dll以外的任何内容,因为这种要求不太可能帮助任何人,正如@David Heffernan所说,gdi32.dll中没有JPEG支持。

有很多方法可以加载/保存winapi中内置的JPEG图片,并且一直支持Windows 2000(以及之前的版本......)。

  1. OleLoadPicture / OleSavePicture - 虽然我不确定以这种方式保存自己的JPEG文件是否非常容易。
  2. Gdiplus::Image允许加载&保存JPEG文件。

答案 2 :(得分:1)

GDI是图形设备接口。它的职责包括将原语渲染到屏幕或屏幕外设备上下文。编码器和解码器不包括在内。

标准Windows编码器和解码器通过Windows Imaging Component提供。从Windows XP SP2开始提供此组件。它也适用于Windows应用商店应用。