我正在处理当前应用程序中的图像,并面临许多问题,例如调整图像大小、图像质量等。
我见过很多网站上传质量好且尺寸最小的图片。我注意到增加或减少尺寸时图像质量不会下降的一件事。
所以我的问题是什么是处理以下问题的有效技术
- 减小图像尺寸长度
- 调整图像尺寸
例如,如果我想要最小图像尺寸应该是(宽度 = 800 * 高度 = 600)那么我如何在不考虑图像质量的情况下增加尺寸以及如何根据比例减小图像尺寸。
我正在研究 asp.net MVC3 C#,但您对任何语言的建议都会对我有所帮助。
我正在处理当前应用程序中的图像,并面临许多问题,例如调整图像大小、图像质量等。
我见过很多网站上传质量好且尺寸最小的图片。我注意到增加或减少尺寸时图像质量不会下降的一件事。
所以我的问题是什么是处理以下问题的有效技术
例如,如果我想要最小图像尺寸应该是(宽度 = 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)
。