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
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
相关文章推荐
- 用C#在windows上操控电脑自带蓝牙(入道指南)
- 【C#】lock语句及在单例模式中应用
- C# - 日志类
- C# - Lee 公共类库
- C# - 事物回滚
- c# 发送SMTP邮件
- c#正则表达式
- c#.net 生成清晰缩略图的解决方案
- C#求三角形的周长和面积
- C# - 时间格式
- WCF服务寄宿IIS与Windows服务 - C#/.NET
- Atitit。Cas机制 软件开发 编程语言 无锁机制 java c# php
- Atitit。Cas机制 软件开发 编程语言 无锁机制 java c# php
- Atitit。Cas机制 软件开发 编程语言 无锁机制 java c# php
- 常量、变量、运算符、表达式和赋值语句的使用
- C# partial部分类的使用
- C# WindowsAPI
- C# 写日志,用于记录程序运行状态
- C#导出EXCEL的几种方法
- C#遍历DataSet中数据的几种方法总结