繁体   English   中英

如何在不损失画质的情况下根据宽高比调整图像大小?

[英]How to resize image according to aspect ratio without losing quality?

我正在处理当前应用程序中的图像,并且遇到很多问题,例如调整图像大小,图像质量等。

我已经看到很多网站上传的图片质量好,长度最小。 我注意到增加或减小尺寸时图像质量不会松动的一件事。

所以我的问题是什么是处理以下问题的有效技术

  1. 缩小图像尺寸
  2. 调整图像尺寸

例如,如果我希望最小图像尺寸应为(宽度= 800 *高度= 600),那么我如何在不考虑图像质量的情况下增加尺寸,以及如何根据比例减小图像尺寸。

我正在asp.net MVC3 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM