如何把真彩色图像转换为256色?

isleepy 2003-09-22 07:21:54
我想把真彩色(24bit,32bit)的图像(bmp,jpeg,tiff,gif)转换为相应的256色图像,请问有什么方法?GDI+中有类支持?
...全文
138 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainbow 2003-10-16
  • 打赏
  • 举报
回复
sleepycat,做弊吗?真正回答的不给分,反而给copy我答案的???
gOODiDEA 2003-09-24
  • 打赏
  • 举报
回复
这篇文章应该对你很有帮助的:http://msdn.microsoft.com/library/en-us/dnaspp/html/colorquant.asp
ddy2000 2003-09-23
  • 打赏
  • 举报
回复
System.Drawing.Bitmap fst=new Bitmap(@"c:\a.jpg");
fst.Save(@"c:\a.gif",System.Drawing.Imaging.ImageFormat.Gif);
System.Drawing.Bitmap snd=new Bitmap(@"c:\a.gif");
snd.Save(@"c:\anew.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
-----------------------------------------------------------------------
好思路!
isleepy 2003-09-23
  • 打赏
  • 举报
回复
难道CDI+中没有这项功能?
我试了你的方法,可以,但是要生成临时文件,不过还是谢谢
没有其他方法的话我就暂时用这个好了,省了很多计算,算调色板太烦了
维她奶 2003-09-23
  • 打赏
  • 举报
回复
up
zag 2003-09-23
  • 打赏
  • 举报
回复
gzing....
isleepy 2003-09-23
  • 打赏
  • 举报
回复
我放在MemoryStream里了,是256色而且小了不少,怎么用RLE压缩让它更小?
wirte 2003-09-22
  • 打赏
  • 举报
回复
学习ing
rainbow 2003-09-22
  • 打赏
  • 举报
回复
最后一句改为 snd.Save(@"c:\anew.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
rainbow 2003-09-22
  • 打赏
  • 举报
回复
简单的方法:
由于gif最多的颜色为256色,所以可以利用此特点进行转换。如:

System.Drawing.Bitmap fst=new Bitmap(@"c:\a.jpg");
fst.Save(@"c:\a.gif",System.Drawing.Imaging.ImageFormat.Gif);
System.Drawing.Bitmap snd=new Bitmap(@"c:\a.gif");
snd.Save(@"c:\anew.jpg");

你可以根据上述方法写一个通用的转换多种格式图像的类。当然真彩转成256色是会有失真的。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧