使用MSDN图像编码示例 - GetEncoderParameterList的示例中出现意外错误

时间:2011-09-14 14:25:58

标签: c# list encoding parameters

此代码已插入按钮处理程序中。

如果我为x64或x86

编译项目,它会产生不同的错误

x64:无法处理溢出异常

说明:算术运算导致溢出。

x86:使位图区域已被锁定。

建议:如果您在GetHdc方法之后使用Graphics对象,请调用ReleaseHdc方法

代码:

Bitmap bitmap1 = new Bitmap(10, 10);
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
        EncoderParameters paramList = bitmap1.GetEncoderParameterList(jpgEncoder.Clsid);
        EncoderParameter[] encParams = paramList.Param;
        StringBuilder paramInfo = new StringBuilder();

        for (int i = 0; i < encParams.Length; i++)
        {
            paramInfo.Append("Param " + i + " holds " + encParams[i].NumberOfValues +
                " items of type " +
                encParams[i].ValueType + "\r\n" + "Guid category: " + encParams[i].Encoder.Guid + "\r\n");

        }

行给出错误是:

EncoderParameters paramList = bitmap1.GetEncoderParameterList(jpgEncoder.Clsid);

有什么想法吗?

0 个答案:

没有答案