gpt4 book ai didi

c# - 如何根据宽高比调整图像大小而不损失质量?

转载 作者:行者123 更新时间:2023-12-01 14:31:13 24 4
gpt4 key购买 nike

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

我见过很多网站上传质量好且尺寸最小的图像。我注意到的一件事是,当增加或减少尺寸时,图像质量不会降低。

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

  1. 减少图像尺寸长度
  2. 调整图像尺寸

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

我正在研究 asp.net MVC3 C#,但您对任何语言的建议都会对我有帮助。

最佳答案

One thing that i noticed image quality does not loose when increase or decrease the dimensions.

如果是这种情况,则图像是 vector 格式,例如 SVG - PNG 和 JPEG 图像在增大尺寸时始终会损失其质量,因为像素会被拉伸(stretch)。有一些方法可以减轻这种情况,但没有办法完全避免它。

如果您想在 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) .

关于c# - 如何根据宽高比调整图像大小而不损失质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16855368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com