Неожиданная ошибка в примере с использованием примера из MSDN Image Encoding - GetEncoderParameterList - PullRequest
2 голосов
/ 14 сентября 2011

Этот код был вставлен в обработчик кнопки.

Выдает разные ошибки, если я компилирую проект для x64 или x86

x64: исключение переполнения не обрабатывается

Объяснение: Арифметическая операция вызвала переполнение.

x86: дает область растрового изображения уже заблокирована.

Предложение. Если вы используете объект Graphics после метода GetHdc, вызовите метод 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);

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...