操作带索引的图片-更简单的实现

之前在对图像进行操作时,如果碰到图片的PixelFormat==Format8bppIndexed..等几种索引格式,对这些格式的图片直接进行Graphics相关操作时,会报出异常:

无法从带有索引像素格式的图像创建 Graphics 对象

之前搜索的解决方案是:先判断格式,然后把有索引的图片Graphics.DrawImage到一个新的Bitmap中。一直都这样用,知道昨天发现了问题,画过后发现图片变了。变小了。。。

也试了几个参数,都搞不定。于是找了找.net watermark相关的开源实现,发现其实啥都不用画,直接这样:

 Bitmap image = new Bitmap(originalImage);

带索引的图片就自动变成了Format24bppRgb,好神奇啊。也没深究其中的缘由,以后就这样用吧。

原文地址:https://www.cnblogs.com/yczz/p/3403148.html