如果我有一个我知道高度和宽度的图像,那么我怎么能将它放在一个矩形最大的矩形中,而不会拉伸图像.
谢谢.
所以,根据答案,我写道:但是不行.我做错了什么
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); }
解决方法
确定两者的宽高比(高度除以宽度,例如,高,瘦长矩形具有> 1的长宽比).
如果矩形的宽高比大于图像的长宽比,则会根据宽度(矩形宽度/图像宽度)均匀地缩放图像.
如果矩形的长宽比小于图像的长宽比,则根据高度(矩形高度/图像高度)均匀地缩放图像.