如何将24位图像转换为16位rgb565位图?

时间:2010-11-09 08:00:21

标签: c# .net bitmap

我有一个应用程序,用户通常会加载24位位图。我需要以16位rgb565格式保存图像。我怎么能在C#中做到这一点?

2 个答案:

答案 0 :(得分:3)

go4answers上的帖子不包含每个答案的作者详细信息,它与MSDN论坛帖子相同,所以我怀疑它是这个MSDN线程的公然副本:24 bit bmp to rGB565 file conversion。 MSDN主题也有更多的答案和更多的讨论,所以我优先使用它来优先于Liviu M在his answer中推荐的go4answers。我不知道为什么Google prefers the go4answers copy over the MSDN original,希望这会改变。

总结一下the MSDN thread中涵盖的一些要点。

  1. 试试FormatConvertedBitmap课程。它使用PixelFormats类来指定生成的转换的格式。 PixelFormats类定义的预定义像素格式之一是BGR565
  2. 您会注意到" BGR" !=" RGB"并且线程包括对交换颜色的讨论。所以另一个答案是推荐经典的System.Drawing.Imaging命名空间及其PixelFormat enumeration,其中包含成员Format16bppRgb565
  3. 关于红色/蓝色交换的讨论是相当冗长的(有用的bug,设计,问题,而不是问题,......)并且似乎得出结论PixelFormats.Bgr565实际上是RGB565。

答案 1 :(得分:0)

This article包含您需要的一切。