clip = new Insets(0,0,0,0);\r
}\r
\r
- try {\r
- BufferedImage img = ImageIO.read(data.getPackagePart().getInputStream());\r
- int iw = img.getWidth();\r
- int ih = img.getHeight();\r
+ BufferedImage img;\r
+ try {\r
+ img = ImageIO.read(data.getPackagePart().getInputStream());\r
+ } catch (Exception e) {\r
+ return false;\r
+ }\r
\r
- double aw = anchor.getWidth();\r
- double ah = anchor.getHeight();\r
- double ax = anchor.getX();\r
- double ay = anchor.getY();\r
- \r
- double cw = (100000-clip.left-clip.right) / 100000.0;\r
- double ch = (100000-clip.top-clip.bottom) / 100000.0;\r
- double sx = aw/(iw*cw);\r
- double sy = ah/(ih*ch);\r
- double tx = anchor.getX()-(iw*sx*clip.left/100000.0);\r
- double ty = anchor.getY()-(ih*sy*clip.top/100000.0);\r
- AffineTransform at = new AffineTransform(sx, 0, 0, sy, tx, ty) ;\r
+ int iw = img.getWidth();\r
+ int ih = img.getHeight();\r
\r
- if (isClipped) {\r
- Shape clipOld = graphics.getClip();\r
- AffineTransform atClip = new AffineTransform(aw, 0, 0, ah, ax, ay);\r
- Shape clipNew = atClip.createTransformedShape(new Rectangle2D.Double(0, 0, 1, 1));\r
- graphics.setClip(clipNew);\r
- graphics.drawRenderedImage(img, at);\r
- graphics.setClip(clipOld);\r
- } else {\r
- graphics.drawRenderedImage(img, at);\r
- }\r
+ double cw = (100000-clip.left-clip.right) / 100000.0;\r
+ double ch = (100000-clip.top-clip.bottom) / 100000.0;\r
+ double sx = anchor.getWidth()/(iw*cw);\r
+ double sy = anchor.getHeight()/(ih*ch);\r
+ double tx = anchor.getX()-(iw*sx*clip.left/100000.0);\r
+ double ty = anchor.getY()-(ih*sy*clip.top/100000.0);\r
+ AffineTransform at = new AffineTransform(sx, 0, 0, sy, tx, ty) ;\r
\r
- return true;\r
- } catch (Exception e) {\r
- return false;\r
- }\r
+ Shape clipOld = graphics.getClip();\r
+ if (isClipped) graphics.clip(anchor.getBounds2D());\r
+ graphics.drawRenderedImage(img, at);\r
+ graphics.setClip(clipOld);\r
\r
+ return true;\r
}\r
\r
/**\r