Я занимаюсь разработкой приложения asp.net MVC на языке c #, где я дал возможность загрузить изображение. Я хочу предоставить обрезать изображение и показать его эскиз. Я немного добился этого, используя пространство имен System.Drawing.Bitmap и его классы, но это влияет на качество миниатюры при сжатии. Что мне нужно сделать . Я прошел по этой ссылке
но не мог наверстать упущенное. пожалуйста помоги.
Отредактировано:
Я уже пытался применить вышеуказанную ссылку: и мой код был:
public static void ResizeAndSaveHighQualityImage (System.Drawing.Image image, int ширина, int высота, строка pathToSave, int качество)
{
// the resized result bitmap
using (Bitmap result = new Bitmap(width, height))
{
// get the graphics and draw the passed image to the result bitmap
using (Graphics grphs = Graphics.FromImage(result))
{
grphs.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
grphs.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
grphs.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
grphs.DrawImage(image, 0, 0, result.Width, result.Height);
}
// check the quality passed in
if ((quality < 0) || (quality > 100))
{
string error = string.Format("quality must be 0, 100", quality);
throw new ArgumentOutOfRangeException(error);
}
EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
string lookupKey = "image/jpeg";
var jpegCodec = ImageCodecInfo.GetImageEncoders().Where(i => i.MimeType.Equals(lookupKey)).FirstOrDefault();
//create a collection of EncoderParameters and set the quality parameter
var encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
//save the image using the codec and the encoder parameter
result.Save(pathToSave, jpegCodec, encoderParams);
}
}
это также генерирует низкокачественное изображение. Также я не смог получить много сверху указанной ссылки. почему мне нужно написать обработчик там? это необходимо?