【问题标题】:GDI+ - converting bitmap pixels to JPG formatGDI+ - 将位图像素转换为 JPG 格式
【发布时间】:2015-03-12 22:50:36
【问题描述】:

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

【问题讨论】:

  • JPG 是一种文件格式。没有“JPG 像素”之类的东西。 Read this.

标签: c++ bitmap gdi+


【解决方案1】:

从这里检查编码器 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

【讨论】:

    【解决方案2】:

    您可以使用CreateStreamOnHGlobalSHCreateMemStream 创建内存流,然后使用GDI+ 方法Image.Save 保存到流中。逆向读入。

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2023-03-05
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      相关资源
      最近更新 更多