c++ - GDI+ - 将位图像素转换为 JPG 格式

标签 c++ bitmap gdi+

我有一个位图像素数组。如何将它们转换为 JPG 格式并复制到另一个数组?如何将它们从 JPG 像素转换回位图?

最佳答案

从这里检查编码器 CLSID 函数:http://msdn.microsoft.com/en-us/library/windows/desktop/ms533843(v=vs.85).aspx

修改原始代码自 https://vctipsplusplus.wordpress.com/tag/image-conversion-gdi/ :

int main()
{
   // Initialize GDI+.
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
   CLSID   encoderClsid;
   Status  stat;
   Image*   image = new Image(L”Bird.bmp”);
   // Get the CLSID of the JPEG encoder.
   GetEncoderClsid(L”image/jpeg”, &encoderClsid);
   stat = image->Save(L”Bird.png”, &encoderClsid, NULL);
   if(stat == Ok)
      printf(“Bird.png was saved successfully\n”);
   else
      printf(“Failure: stat = %d\n”, stat);
   delete image;
   GdiplusShutdown(gdiplusToken);
   return 0;
}

只需将 image/jpeg 更改为您要转换的任何格式。详细信息在我上面提到的 MSDN 链接中给出。当然,要使用像素,您需要将 JPEG 转换为 BMP

关于c++ - GDI+ - 将位图像素转换为 JPG 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27948280/

相关文章:

c++ - 如何通过IUpdate接口(interface)判断windows更新级别

c++ - 使用 Magick++ 获取像素颜色?

.net - 检测图像是否为空的有效方法

c++ - 查找多个值的范围

C++ 函数在函数中声明

java - 从 url 加载位图太慢

c++ - diceroll 的位图

c# - 锐化滤镜 - 无效果

c++ - 将打印机设备上下文另存为图像

winforms - 如何将 WinForm 窗口捕获为不带插入符号的位图