在asp.net中调整图像大小而不丢失图像质量

在asp.net中调整图像大小而不丢失图像质量,第1张

在asp.net中调整图像大小而不丢失图像质量

不久前,我遇到了同样的问题,并以这种方式处理:

private Image RezizeImage(Image img, int maxWidth, int maxHeight){    if(img.Height < maxHeight && img.Width < maxWidth) return img;    using (img)    {        Double xRatio = (double)img.Width / maxWidth;        Double yRatio = (double)img.Height / maxHeight;        Double ratio = Math.Max(xRatio, yRatio);        int nnx = (int)Math.Floor(img.Width / ratio);        int nny = (int)Math.Floor(img.Height / ratio);        Bitmap cpy = new Bitmap(nnx, nny, PixelFormat.Format32bppArgb);        using (Graphics gr = Graphics.FromImage(cpy))        { gr.Clear(Color.Transparent); // This is said to give best quality when resizing images gr.InterpolationMode = InterpolationMode.HighQualityBicubic; gr.DrawImage(img,     new Rectangle(0, 0, nnx, nny),     new Rectangle(0, 0, img.Width, img.Height),     GraphicsUnit.Pixel);        }        return cpy;    }}private MemoryStream BytearrayToStream(byte[] arr){    return new MemoryStream(arr, 0, arr.Length);}private void HandleImageUpload(byte[] binaryImage){    Image img = RezizeImage(Image.FromStream(BytearrayToStream(binaryImage)), 103, 32);    img.Save("IMAGELOCATION.png", System.Drawing.Imaging.ImageFormat.Gif);}

我刚刚读到,这是获得最高质量的方法。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5499083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存