JavaSwing:如何用单个图像填充形状

JavaSwing:如何用单个图像填充形状,java,image,swing,Java,Image,Swing,我知道可以使用g2d.setPaintnew TexturePaintimg,rect来用图像填充形状,但问题是形状是用图像细分的,而不是将单个图像重新缩放到形状的边界框以填充整个区域。 后者是我想要实现的 例如,如果我有一个20x20的图像,并且我想填充一个宽度为200、高度为300的椭圆E2D,我想用重新缩放的200x300版本的图像填充该椭圆E2D,而不是用20x20图像对其进行细分 是否有一种方法可以实现这一点,并且希望能够以一种有效的方式实现这一点?尝试以下方法: g2d.setPai

我知道可以使用g2d.setPaintnew TexturePaintimg,rect来用图像填充形状,但问题是形状是用图像细分的,而不是将单个图像重新缩放到形状的边界框以填充整个区域。 后者是我想要实现的

例如,如果我有一个20x20的图像,并且我想填充一个宽度为200、高度为300的椭圆E2D,我想用重新缩放的200x300版本的图像填充该椭圆E2D,而不是用20x20图像对其进行细分

是否有一种方法可以实现这一点,并且希望能够以一种有效的方式实现这一点?

尝试以下方法:

g2d.setPaint(new TexturePaint(img.getScaledInstance(200, 300, 0),rect));

我以前从未尝试过这一方法,但它似乎应该会起作用。

那么你想知道如何重新缩放图像吗?这可能会解决我的问题,所以是的。你可以使用上述任何一种方法对图像重新采样