您的位置:首页 > 编程语言 > C#

c#_具有索引像素格式的图像不支持 SetPixel

2016-03-27 10:07 681 查看
首先呢我们要明白各种图片格式,不同的图片格式成像也是不同的,对于索引类型的图片,其文件头部有一个颜色表,这个表按照一定的规律存储了所有的可能在这张图片中出现的颜色。它的每一个点的像素值(ARGB)并不是直接存储的。在存储具体点的数据的地方之只是存储其在颜色表中的索引,在进行的解码的时候,读取索引然后在颜色表中查找,找到对应所以的颜色值之后将其显示出来作为这个点的颜色值。

System.Drawing.Image不支持通过索引的方式存储图片数据的图片实现setpixel,-_-\\心累(我觉得完全可以实现的啊)

可是这又有什么关系呢!

我们可以通过Bitmap.Clone()来将索引图片的像素数据拷贝到我们新建的图片上,并且在函数中指定我们新图片的pixelFormat (这次就不要设置成什么索引类型的啦!)接下来就是对我们新建的图片进行操作啦。。。想怎么玩就怎么玩的!

Bitmap indexImg = new Bitmap(“fileName.jpg”);

Bitmap newImg = indexImg.Clone(new Rectangle(0,0,indexImg.Width,indexImg.Height),PixelFormat.Format24bppRgb);

// do something you want

// example : setPixel() …..

// balabalabla
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: