Обрезка изображений без потерь с помощью .NET - PullRequest
0 голосов
/ 31 марта 2010

Я пытаюсь понять, почему после обрезки изображения в .NET я получаю изображение, в 3 раза превышающее исходное изображение. Ниже приведен код, который я использую для обрезки изображения

  Private Shared Function CropImage(ByVal img As Image, ByVal cropArea As Rectangle) As Image
      Dim bmpImage As Bitmap = New Bitmap(img)
      Dim bmpCrop As Bitmap = bmpImage.Clone(cropArea, img.PixelFormat)
      Return CType(bmpCrop, Image)
   End Function

где img - исходное изображение, загруженное из файла в объект изображения.

Как я могу добиться без потерь обрезки своего изображения?

1 Ответ

1 голос
/ 31 марта 2010

Взгляните на второй ответ на этот вопрос:

Высококачественная библиотека масштабирования изображений

Этот код должен помочь. Проблема заключается в том, что в библиотеке обработки изображений .NET по умолчанию для параметра System.Drawing.Imaging.Encoder.Quality установлено значение 100%, что в три раза больше размера 90%, что не имеет видимой разницы в качестве. Используйте код в этом вопросе, чтобы сохранить изображение с более низкими настройками качества, и вы увидите большую разницу в размере вашего файла.

...