EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

C#32位Bitmap转24位Bitmap、C#32位Bitmap转8位Bitmap、C#xx位Bitmap转任意位Bitmap

C# 32位Bitmap转24位Bitmap、C# 32位Bitmap转8位Bitmap、C# xx位Bitmap转任意位Bitmap……

你知道你为什么搜不到你想要的东西嘛?

是因为,太基础了。


你可能会搜到:

C# 图像处理:将图像(24位真彩)转为 8位图像,供深度学习

https://blog.csdn.net/lvyiwuhen/article/details/106117751

这个是教你转化为灰度图。

C#图片灰度处理(位深度24→位深度8)

https://www.cnblogs.com/longyi/p/4605325.html

这个也是……


其实这个并不难,主要是没有直接的方法转换。

基本的逻辑是新建画布重新画一个。

Image bmp32 = Image.FromFile(file);
Bitmap bmp24 = new Bitmap(bmp32.Width, bmp32.Height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmp24);
g.DrawImage(bmp32, new Rectangle(0, 0, bmp32.Width, bmp32.Height));
bmp24.Save($"{dstPath}\\{fileName}", ImageFormat.Bmp);

按照这样的方式,其它位数同理。

 

发现不能使用 Format8bppIndexed ,那么一个免费的图片处理库FreeImage推荐。

C#document:https://freeimage.sourceforge.io/fnet/Index.html

FreeImage Demo:

C#中使用FreeImage库加载Bmp、JPG、PNG、PCX、TGA、PSD等25种格式的图像(源码)

https://www.cnblogs.com/Imageshop/p/3176478.html

 

 

参考来源:

https://blog.csdn.net/luo_5458/article/details/81180791

This article was last edited at 2020-09-03 05:51:35

* *