c# – 将24位bmp转换为16位?

c# – 将24位bmp转换为16位?,第1张

概述我知道.NET Framework附带了一个图像转换类(System.Drawing. Image.Save方法). 但是我需要将一个24位(R8G8B8)位图图像转换为16位(X1R5G5B5),我真的不知道这种转换,bmp标题中的24比16位变化将不会“ (因为我们需要转换整个图像数据). 我也想知道我是否可以控制图像抖动等 想法? 任何一种帮助将不胜感激. Format16bppRgb155 我知道.NET Framework附带了一个图像转换类(System.Drawing. Image.Save方法).

但是我需要将一个24位(R8G8B8)位图图像转换为16位(X1R5G5B5),我真的不知道这种转换,bmp标题中的24比16位变化将不会“ (因为我们需要转换整个图像数据).

我也想知道我是否可以控制图像抖动等

想法?
任何一种帮助将不胜感激.

解决方法 Format16bppRgb1555像素格式被声明,但GDI实际上并不支持它.没有使用该像素格式的主流视频驱动程序或图像编解码器. GDI设计师猜测的东西可能会发生,他们的时间机器不够准确.否则从在System.Drawing上工作的程序员的一个漂亮的复制/粘贴.

Rgb555是可用的硬件和编解码器最接近的匹配项:

public static Bitmap ConvertTo16bpp(Image img) {    var bmp = new Bitmap(img.WIDth,img.Height,System.Drawing.Imaging.PixelFormat.Format16bppRgb555);    using (var gr = Graphics.FromImage(bmp))        gr.DrawImage(img,new Rectangle(0,img.WIDth,img.Height));    return bmp;}
总结

以上是内存溢出为你收集整理的c# – 将24位bmp转换为16位?全部内容,希望文章能够帮你解决c# – 将24位bmp转换为16位?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1235970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存