在Windows Mobile上使用IImage接口将BITMAP转换为PNG

时间:2009-05-18 19:31:38

标签: winapi image windows-mobile native

我已经掌握了Windows Mobile应用程序中的BITMAP结构(HBITMAP) - 如果可能的话,我想使用IImage接口将位图保存为PNG文件。 (在这种情况下没有BMP文件,BITMAP只在内存中。)

看起来我可以使用IImagingFactory的IImagingFactory::CreateImageEncoderToFile方法来保存文件,但我想我首先必须将BITMAP转换为“IImage”格式。

有关如何使用本机代码执行此操作的任何想法?

1 个答案:

答案 0 :(得分:1)

使用CreateImageFromStream读取您的BITMAP数据,为您提供IImage。

编辑:

我对此做了一些研究。有几条路,但我认为最简单的方法是:

  1. 创建一个DIBSECTION并将位图blit到它。
  2. 创建一个BitmapData实例,指向图像数据的DIBSECTION。
  3. 致电CreateBitmapFromBuffer以生成IBitmapImage界面
  4. 通过编码器推送IBitmapImage(这是一个IImage)。