Author: kiwiwings
Date: Tue Oct 28 00:04:10 2014
New Revision: 1634749
URL: http://svn.apache.org/r1634749
Log:
simplified the cropping code and changed the cropping image to a more
sophisticated one - interesting enough, it's rendered correct in POI (like in
Powerpoint), but malformed in LO
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFImageRenderer.java
poi/trunk/test-data/slideshow/54542_cropped_bitmap.pptx
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFImageRenderer.java
URL:
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFImageRenderer.java?rev=1634749&r1=1634748&r2=1634749&view=diff
==============================================================================
---
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFImageRenderer.java
(original)
+++
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFImageRenderer.java
Tue Oct 28 00:04:10 2014
@@ -93,40 +93,30 @@ public class XSLFImageRenderer {
clip = new Insets(0,0,0,0);
}
- try {
- BufferedImage img =
ImageIO.read(data.getPackagePart().getInputStream());
- int iw = img.getWidth();
- int ih = img.getHeight();
+ BufferedImage img;
+ try {
+ img = ImageIO.read(data.getPackagePart().getInputStream());
+ } catch (Exception e) {
+ return false;
+ }
- double aw = anchor.getWidth();
- double ah = anchor.getHeight();
- double ax = anchor.getX();
- double ay = anchor.getY();
-
- double cw = (100000-clip.left-clip.right) / 100000.0;
- double ch = (100000-clip.top-clip.bottom) / 100000.0;
- double sx = aw/(iw*cw);
- double sy = ah/(ih*ch);
- double tx = anchor.getX()-(iw*sx*clip.left/100000.0);
- double ty = anchor.getY()-(ih*sy*clip.top/100000.0);
- AffineTransform at = new AffineTransform(sx, 0, 0, sy, tx, ty) ;
+ int iw = img.getWidth();
+ int ih = img.getHeight();
- if (isClipped) {
- Shape clipOld = graphics.getClip();
- AffineTransform atClip = new AffineTransform(aw, 0, 0, ah, ax,
ay);
- Shape clipNew = atClip.createTransformedShape(new
Rectangle2D.Double(0, 0, 1, 1));
- graphics.setClip(clipNew);
- graphics.drawRenderedImage(img, at);
- graphics.setClip(clipOld);
- } else {
- graphics.drawRenderedImage(img, at);
- }
+ double cw = (100000-clip.left-clip.right) / 100000.0;
+ double ch = (100000-clip.top-clip.bottom) / 100000.0;
+ double sx = anchor.getWidth()/(iw*cw);
+ double sy = anchor.getHeight()/(ih*ch);
+ double tx = anchor.getX()-(iw*sx*clip.left/100000.0);
+ double ty = anchor.getY()-(ih*sy*clip.top/100000.0);
+ AffineTransform at = new AffineTransform(sx, 0, 0, sy, tx, ty) ;
- return true;
- } catch (Exception e) {
- return false;
- }
+ Shape clipOld = graphics.getClip();
+ if (isClipped) graphics.clip(anchor.getBounds2D());
+ graphics.drawRenderedImage(img, at);
+ graphics.setClip(clipOld);
+ return true;
}
/**
Modified: poi/trunk/test-data/slideshow/54542_cropped_bitmap.pptx
URL:
http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/54542_cropped_bitmap.pptx?rev=1634749&r1=1634748&r2=1634749&view=diff
==============================================================================
Binary files - no diff available.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]