如题,注意是保存到单色的,貌似piexlformat里面没有单色的这种格式,只有个单色索引什么的。

解决方案 »

  1. 仅供参考。//
    private static ImageCodecInfo GetEncoderInfo(string mimeType)
    {
                int j;
                ImageCodecInfo[] encoders;            encoders = ImageCodecInfo.GetImageDecoders();
                for (j = 0; j < encoders.Length; j++)
                {
                    if (encoders[j].MimeType == mimeType)
                        return encoders[j];
                }
                return null;
    }//
    Image oldImage = (Image)Image.FromFile(@"c:\test.bmp").Clone();
                    
    Image image = new Bitmap(2304, 3307); //图片大小:2304*3307Graphics g = Graphics.FromImage(image);g.DrawImage(oldImage, new Rectangle(0, 0, image.Width, image.Height), cropRect.X*5, cropRect.Y*5, cropRect.Width*5, cropRect.Height*5, GraphicsUnit.Pixel);
    // 这里用到的cropRect是当时我的应用中需要的东东,你自己参考g.DrawImage做调整。ImageCodecInfo icf = GetEncoderInfo("image/tiff");System.Drawing.Imaging.Encoder myEncoder;
    EncoderParameter myEncoderParameter;
    EncoderParameters myEncoderParameters;myEncoder = System.Drawing.Imaging.Encoder.Compression;
                    
    myEncoderParameters = new EncoderParameters(3);
    myEncoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth, 1L);
    myEncoderParameters.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.Compression, (long)EncoderValue.CompressionCCITT4);
    myEncoderParameters.Param[2] = new EncoderParameter(System.Drawing.Imaging.Encoder.SaveFlag, (long)EncoderValue.Flush); image.Save("c:\\newx.tif", icf, myEncoderParameters);
    //转换到tif或bmp,在这里不重要,关键是上面这些代码段,你可能要用上。
      

aliyun

类似问题 »