0

我不知道我做错了,我一直在网上寻找,并尝试了很多不同的东西但没有任何效果,当我尝试保存图像时有很多灰点

结果可以在这里看到
http://postimg.org/image/btvob8f6l/

    public static void ExifSave(List<InfoList> data)
    {
        ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
        System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
        EncoderParameters myEncoderParameters = new EncoderParameters(1);
        EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
        myEncoderParameter = new EncoderParameter(myEncoder, 100L);
        myEncoderParameters.Param[0] = myEncoderParameter;

        list = data;
        foreach (InfoList i in data)
        {
            SetProperty(ref prop, i.id, i.value);
            image.SetPropertyItem(prop);
        }
        fs.Dispose();
        try
        {
            image.Save(Path);
        }
        catch (Exception e)
        {
            new MessagePromt("DEBUG::LoadImages()::Error attempting to create image::" + e.Message, e.Message);
        }
    }
    private static ImageCodecInfo GetEncoder(ImageFormat format)
    {
        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
        foreach (ImageCodecInfo codec in codecs)
        {
            if (codec.FormatID == format.Guid)
            {
                return codec;
            }
        }
        return null;
    }
4

1 回答 1

0

如果image是一个Bitmap类,您可能需要将 传递EncoderParametersSave方法

image.Save(Path, jgpEncoder, myEncoderParameters);
于 2013-05-18T00:31:16.693 回答