Java – fit image to rectangle
•
Java
If I have an image that I know the height and width, how can I put it in the largest rectangle without stretching the image
Pseudocode is enough (but I'll use it in Java)
thank you.
So, according to the answer, I wrote: but no What did I do wrong
double imageRatio = bi.getHeight() / bi.getWidth();
double rectRatio = getHeight() / getWidth();
if (imageRatio < rectRatio)
{
// based on the widths
double scale = getWidth() / bi.getWidth();
g.drawImage(bi,(int) (bi.getWidth() * scale),(int) (bi.getHeight() * scale),this);
}
if (rectRatio < imageRatio)
{
// based on the height
double scale = getHeight() / bi.getHeight();
g.drawImage(bi,this);
}
Solution
Determine the aspect ratio of the two (height divided by width, for example, height, thin rectangle has an aspect ratio of > 1)
If the aspect ratio of the rectangle is greater than the aspect ratio of the image, the image is scaled evenly according to the width (rectangle width / image width)
If the aspect ratio of the rectangle is less than the aspect ratio of the image, the image is scaled evenly according to the height (rectangle height / image height)
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
