简单的方法:
由于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色是会有失真的。

解决方案 »

  1.   

    最后一句改为 snd.Save(@"c:\anew.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
      

  2.   

    难道CDI+中没有这项功能?
    我试了你的方法,可以,但是要生成临时文件,不过还是谢谢
    没有其他方法的话我就暂时用这个好了,省了很多计算,算调色板太烦了
      

  3.   

    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);
    -----------------------------------------------------------------------
    好思路!
      

  4.   

    我放在MemoryStream里了,是256色而且小了不少,怎么用RLE压缩让它更小?
      

  5.   

    这篇文章应该对你很有帮助的:http://msdn.microsoft.com/library/en-us/dnaspp/html/colorquant.asp
      

  6.   

    sleepycat,做弊吗?真正回答的不给分,反而给copy我答案的???