首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将32 Bitmap位图转换为16 Bitmap(灰度)

将32 Bitmap位图转换为16 Bitmap(灰度)
EN

Stack Overflow用户
提问于 2014-06-20 19:47:27
回答 1查看 1.2K关注 0票数 0

我在C#中从一个图像对象创建一个位图。

我得到的位图是32bpp,我如何把它转换成16bpp呢?

代码语言:javascript
运行
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-20 19:55:19

如果你在google上快速搜索,你可以找到一些优秀的颜色到灰度公式。以以下从维基百科为例:

代码语言:javascript
运行
复制
Y' =  0.2126 R' + 0.7152 G' + 0.0722 B'

考虑到这一点,.NET中的一般流程将是:

  • 用16 new灰度创建正确尺寸的新图像。
  • 对原始图像和新图像使用"LockBits“,并在每个像素上循环。
  • 解锁两个图像,然后将新图像保存到文件中。

我没有进一步研究这些步骤,而是从堆栈和网络中发现了一些其他的问题,它们真正地深入到了细节上。请参见:

祝你好运!

注意到-我假设您使用的是GDI+。对于(WIC),这些步骤是相似的,但是类和语法完全不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24334587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档