У меня есть этот код, который я использую для изменения размера и сохранения файла, который публикуется пользователем. Проблема заключается в том, что когда я пересчитываю ширину 480 пикселей, изображение теряет много качества, а размер в kb по-прежнему довольно большой.Asp.net image resizing quality
Например, при изменении размера изображения на 480px «вручную» с использованием программного обеспечения, такого как Paint, качество по-прежнему не хуже оригинала (от того, что может сказать мой глаз), и размер в kb очень много меньше, чем изменение размера с использованием метода GetThumbNailImage
.
Mdn говорит «Если вы запросите большое уменьшенное изображение (например, 300 x 300) из изображения с встроенной миниатюрой, может быть заметная потеря качества в миниатюрном изображении. Возможно, было бы лучше масштабируйте основное изображение (вместо масштабирования встроенного эскиза), вызвав метод DrawImage
»., но это похоже на формы Windows, и мне нужно для веб-приложения.
Какой код следует использовать для этого?
System.IO.Stream st = FileUploadPost.PostedFile.InputStream;
myImage = System.Drawing.Image.FromStream(st);
thumb = myImage.GetThumbnailImage(newWidth, newHeight, null, System.IntPtr.Zero);
thumb.Save(myPath);
Я написал эту функцию, которая изменяет размеры изображений JPEG, где вы можете установить качество http://codingstill.com/2011/07/creating-thumbnails-from-jpg-images-with-net/. Надеюсь, это поможет –
спасибо за ваш ответ, но ваша функция - только для jpg-изображений, и я также работаю с другими форматами. – user2974961