操作带索引的图片-更简单的实现
之前在对图像进行操作时,如果碰到图片的PixelFormat==Format8bppIndexed..等几种索引格式,对这些格式的图片直接进行Graphics相关操作时,会报出异常:
无法从带有索引像素格式的图像创建 Graphics 对象
之前搜索的解决方案是:先判断格式,然后把有索引的图片Graphics.DrawImage到一个新的Bitmap中。一直都这样用,知道昨天发现了问题,画过后发现图片变了。变小了。。。
也试了几个参数,都搞不定。于是找了找.net watermark相关的开源实现,发现其实啥都不用画,直接这样:
Bitmap image = new Bitmap(originalImage);
带索引的图片就自动变成了Format24bppRgb,好神奇啊。也没深究其中的缘由,以后就这样用吧。