как изменить размер изображения при сохранении в папке - PullRequest
0 голосов
/ 06 января 2010

У меня есть файл изображения (размером 600 * 800) или любого размера. Теперь мне нужно преобразовать их в уменьшенное изображение размером **** (110 * 110) ****

.

но если я уменьшу размер изображения, я не должен менять его качество. как только мы уменьшаем размер изображения, качество изображения исчезает

есть ли способ, не влияющий на качество изображения, мы можем преобразовать их в уменьшенное изображение [есть ли встроенный класс для этого в .net)

любая помощь будет отличной

Ответы [ 2 ]

3 голосов
/ 06 января 2010

Ну, о том, как это сделать, есть интересный материал здесь может вам помочь.

Что касается потери качества, если вы имеете в виду разрешение, вы не сможете уменьшить размер изображения, выбрасывая пространственную информацию, которую уже нельзя восстановить. Конечно, если вы используете какую-то интерполяцию, но она никогда не будет такой же, как ваша исходная картинка.

Что вы можете сделать, это сохранить одну версию каждой.

Вот код, полученный по ссылке, и, честно говоря, я думаю, что последние 5 строк кода начинаются с Bitmap b = new Bitmap (destWidth, destHeight); достаточно, чтобы решить вашу проблему.

private static Image resizeImage(Image imgToResize, Size size)
{
   int sourceWidth = imgToResize.Width;
   int sourceHeight = imgToResize.Height;

   float nPercent = 0;
   float nPercentW = 0;
   float nPercentH = 0;

   nPercentW = ((float)size.Width / (float)sourceWidth);
   nPercentH = ((float)size.Height / (float)sourceHeight);

   if (nPercentH < nPercentW)
      nPercent = nPercentH;
   else
      nPercent = nPercentW;

   int destWidth = (int)(sourceWidth * nPercent);
   int destHeight = (int)(sourceHeight * nPercent);

   Bitmap b = new Bitmap(destWidth, destHeight);
   Graphics g = Graphics.FromImage((Image)b);
   g.InterpolationMode = InterpolationMode.HighQualityBicubic;

   g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
   g.Dispose();

   return (Image)b;
}
0 голосов
/ 06 января 2010

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

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