我现在有个Bitmap是32位的ARGB,如何保存成8位的位图,8位的gif,8位的png??
这3个编码器似乎都没有参数阿

解决方案 »

  1.   

    C# 
    public Bitmap (
    int width,
    int height,
    PixelFormat format
    )
     
      

  2.   

    指定图像中每个像素的颜色数据的格式。 命名空间:System.Drawing.Imaging
    程序集:System.Drawing(在 system.drawing.dll 中)C# 
    public enum PixelFormat
     
      

  3.   

    ImageCodecInfo[] MyInfos = ImageCodecInfo.GetImageEncoders();
    ImageCodecInfo InfoPNG = MyInfos[0];
    for (int i = 0; i < MyInfos.Length; i++)
    {
      if (MyInfos[i].FormatDescription == "PNG")
        InfoPNG = MyInfos[i];
    }
    System.Drawing.Imaging.Encoder MyEncoder = System.Drawing.Imaging.Encoder.ColorDepth;
    EncoderParameters MyParams = new EncoderParameters();
    EncoderParameter MyParam = new EncoderParameter(MyEncoder, 8L);
    MyParams.Param[0] = MyParam;
    你的Bitmap.Save(文件名, InfoPNG, MyParams)
      

  4.   

    GIF图片只需将
    if (MyInfos[i].FormatDescription == "PNG")
    中的PNG改为GIF即可