我知道.NET Framework附带了一个图像转换类(System.Drawing.Image.Save方法).
但我需要一个24位(R8G8B8)位图图像转换为16位(X1R5G5B5),我真的得上这种转换不知道,并在BMP头止跌24到16位的变化"工作(因为我们需要转换整个图像数据).
另外我想知道我是否可以控制图像抖动等.
想法?任何形式的帮助将不胜感激.
Han*_*ant 20
声明了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, 0, img.Width, img.Height));
return bmp;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22709 次 |
| 最近记录: |