我正在使用Image对象在C#中创建一个Bitmap。
我得到的位图是32bpp,我怎样才能将其转换为16bpp?
Bitmap image_bmp;
System.Drawing.Image tmp = (System.Drawing.Image)img.RenderImage(0); //RenderImage creates an object of tyoe System.Drawing.Image
image_bmp = new Bitmap(tmp);
答案 0 :(得分:1)
如果您在谷歌上运行快速搜索,您可以找到许多优秀的颜色到灰度公式。以下面的from wikipedia为例:
Y' = 0.2126 R' + 0.7152 G' + 0.0722 B'
考虑到这一点,.NET中的一般过程将是:
我没有进一步深入这些步骤,而是从堆栈和网络上找到了一些其他问题,这些问题真正深入研究了细节。参见:
祝你好运!
注意 - 我假设您正在使用GDI +。 Windows Imaging Component(WIC)的步骤类似,但类和语法完全不同。