我知道做简单的缩放,但是如何将图像缩放到最大 300*100 像素?我搜索了 AffineTransform API 类,但找不到此方法。
提前谢谢
我知道做简单的缩放,但是如何将图像缩放到最大 300*100 像素?我搜索了 AffineTransform API 类,但找不到此方法。
提前谢谢
根据相对于目标宽度/高度的图像宽度/高度计算变换因子。
编写一些代码,如果遇到问题,请提出具体问题。
我认为您需要通过计算将您的高度变为 300 像素并将宽度变为 100 的比例来“回到”您的比例因子。
就像是
double xScale = 100/image.getWidth();
double yScale = 300/image.getHeight();
AffineTransform transform = new AffineTransform();
transform.setToScale( xScale, yScale );
//paint code goes here
但是,这不会均匀地缩放它。为此,您需要对 x 和 y 使用相同的比例。因此,如果您试图确保您的图像适合屏幕/显示器/页面,您将采用最宽尺寸的比例。所以使用上面的例子......
double xScale = 100/image.getWidth();
double yScale = 300/image.getHeight();
double theScale = xScale > yScale ? xScale : yScale;
AffineTransform transform = new AffineTransform();
transform.setToScale( theScale , theScale );
//paint code goes here
不过这只是一个建议,希望对你有所帮助。