0
我正在繪製一個透明的渲染圖像,然後顯示在JPanel上的背景圖像上。drawRenderedImage(image,AffineTransform)。我如何獲得renderedImage的寬度和高度
我需要在縮放和旋轉後得到渲染圖像的邊界。 因此,下次我打電話重繪它可以與 渲染圖像的剪輯。
任何想法?謝謝你的幫助。
@Override public void paintComponent(java.awt.Graphics g)
{
if(g != null)
{
g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), null);
Graphics2D g2 = (Graphics2D)g.create();
double cx = sprite.getWidth()/2.0;
double cy = sprite.getHeight()/2.0;
AffineTransform at = AffineTransform.getTranslateInstance(xPos, yPos);
at.concatenate(AffineTransform.getScaleInstance(scale, scale));
at.rotate(theta, cx, cy);
g2.drawRenderedImage(sprite, at);
//get width and height of rendered image here?
g2.dispose();
}
謝謝。這就是我一直在尋找的東西。唯一的問題是返回的Rectangle不是圖像的精確邊界。 – codealive 2010-07-07 17:33:46
@codealive你能告訴,多少「不確切」? – Vanya 2010-07-08 07:28:51
當旋轉時,矩形的大小約爲圖像每一邊的40個像素,但在被旋轉時精確到90 180 270或360 – codealive 2010-07-08 18:14:48