如何根据宽高比调整图像大小而不损失质量
本文关键字:损失 图像 何根 高比 调整 | 更新日期: 2023-09-27 18:16:09
我正在研究当前应用程序中的图像,并面临许多问题,如调整图像大小,图像质量等
我看到很多网站上传的图像质量很好,最小的尺寸长度。我注意到的一件事是,当增加或减少尺寸时,图像质量不会丢失。
所以我的问题是什么将是有效的技术来处理以下问题
- 减小图像长度
- 调整图像尺寸
例如,如果我想要最小的图像尺寸应该是(宽度= 800 *高度=600),那么我如何在不考虑图像质量的情况下增加尺寸以及如何根据比例减少图像尺寸
我正在asp.net mvc c#上工作,但是你的建议对我任何语言都有帮助。
我注意到的一件事是,当增加或减少尺寸时,图像质量不会丢失。
如果是这种情况,那么图像是矢量格式,例如SVG - PNG和JPEG图像在增加大小时总是会失去其质量,因为像素将被拉伸。你有办法减轻这种情况,但没有办法完全规避它。
如果你想在Java中缩放图像,但是你可以合理地获得良好的质量:
BufferedImage scaled = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
AffineTransform at = new AffineTransform();
at.scale(2.0, 2.0);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC);
BufferedImage scaledImage = scaleOp.filter(img, scaled);
决定图像缩放方式的关键部分是AffineTransformOp.TYPE_BICUBIC
,它通常会给出最好的结果(无论如何,尽其所能)。c#无疑也会有类似的开关。比例因子由at.scale(2.0, 2.0);
给出,它将长度和高度增加两倍-如果你想,比如说,减少一半的尺寸,使用at.scale(0.5, 0.5)
。