poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cen...@apache.org
Subject svn commit: r1745073 - in /poi/trunk/src: examples/src/org/apache/poi/xslf/usermodel/ java/org/apache/poi/sl/usermodel/ ooxml/java/org/apache/poi/xslf/usermodel/ scratchpad/src/org/apache/poi/hslf/usermodel/
Date Sun, 22 May 2016 16:08:52 GMT
Author: centic
Date: Sun May 22 16:08:51 2016
New Revision: 1745073

URL: http://svn.apache.org/viewvc?rev=1745073&view=rev
Log:
Bug 58190: Add more overloaded methods for adding pictures from streams and files

Modified:
    poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java
    poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShow.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java

Modified: poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java?rev=1745073&r1=1745072&r2=1745073&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/Tutorial5.java Sun May 22 16:08:51
2016
@@ -38,11 +38,11 @@ public class Tutorial5 {
         XMLSlideShow ppt = new XMLSlideShow();
 
         XSLFSlide slide = ppt.createSlide();
-        File img = new File(System.getProperty("POI.testdata.path"), "slideshow/clock.jpg");
-        byte[] data = IOUtils.toByteArray(new FileInputStream(img));
-        XSLFPictureData pictureIndex = ppt.addPicture(data, PictureType.PNG);
 
-        /*XSLFPictureShape shape =*/ slide.createPicture(pictureIndex);
+        File img = new File(System.getProperty("POI.testdata.path", "test-data"), "slideshow/clock.jpg");
+        XSLFPictureData pictureData = ppt.addPicture(img, PictureType.PNG);
+
+        /*XSLFPictureShape shape =*/ slide.createPicture(pictureData);
 
         FileOutputStream out = new FileOutputStream("images.pptx");
         ppt.write(out);

Modified: poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShow.java?rev=1745073&r1=1745072&r2=1745073&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShow.java (original)
+++ poi/trunk/src/java/org/apache/poi/sl/usermodel/SlideShow.java Sun May 22 16:08:51 2016
@@ -18,9 +18,7 @@
 package org.apache.poi.sl.usermodel;
 
 import java.awt.Dimension;
-import java.io.Closeable;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.io.*;
 import java.util.List;
 
 import org.apache.poi.sl.usermodel.PictureData.PictureType;
@@ -64,18 +62,37 @@ public interface SlideShow<
      */
     List<? extends PictureData> getPictureData();
 
-        
     /**
-     * Adds a picture to the workbook.
+     * Adds a picture to the presentation.
      *
      * @param pictureData       The bytes of the picture
      * @param format            The format of the picture.
      *
-     * @return the new picture reference
+     * @return the picture data reference.
      */
     PictureData addPicture(byte[] pictureData, PictureType format) throws IOException;
 
     /**
+     * Adds a picture to the presentation.
+     *
+     * @param is	        The stream to read the image from
+     * @param format        The format of the picture.
+     *
+     * @return the picture data reference.
+     */
+    PictureData addPicture(InputStream is, PictureType format) throws IOException;
+
+    /**
+     * Adds a picture to the presentation.
+     *
+     * @param pict              The file containing the image to add
+     * @param format            The format of the picture.
+     *
+     * @return the picture data reference
+     */
+    PictureData addPicture(File pict, PictureType format) throws IOException;
+
+    /**
      * Writes out the slideshow file the is represented by an instance of this
      * class
      *

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java?rev=1745073&r1=1745072&r2=1745073&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java Sun May 22 16:08:51
2016
@@ -19,6 +19,8 @@ package org.apache.poi.xslf.usermodel;
 import static org.apache.poi.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
 
 import java.awt.Dimension;
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -202,7 +204,7 @@ implements SlideShow<XSLFShape,XSLFTextP
     /**
      * Create a slide and initialize it from the specified layout.
      *
-     * @param layout
+     * @param layout The layout to use for the new slide.
      * @return created slide
      */
     public XSLFSlide createSlide(XSLFSlideLayout layout) {
@@ -461,6 +463,45 @@ implements SlideShow<XSLFShape,XSLFTextP
         return img;
     }
 
+
+    /**
+     * Adds a picture to the slideshow.
+     *
+     * @param is                The stream to read image from
+     * @param format              The format of the picture
+     *
+     * @return the picture data
+     */
+    @Override
+    public XSLFPictureData addPicture(InputStream is, PictureType format) throws IOException
+    {
+        return addPicture(IOUtils.toByteArray(is), format);
+    }
+
+
+    /**
+     * Adds a picture to the presentation.
+     *
+     * @param pict             The file containing the image to add
+     * @param format           The format of the picture.
+     *
+     * @return the picture data
+     */
+    @Override
+    public XSLFPictureData addPicture(File pict, PictureType format) throws IOException
+    {
+        int length = (int) pict.length();
+        byte[] data = new byte[length];
+        FileInputStream is = new FileInputStream(pict);
+        try {
+            IOUtils.readFully(is, data);
+        } finally {
+            is.close();
+        }
+        return addPicture(data, format);
+    }
+
+
     /**
      * check if a picture with this picture data already exists in this presentation
      */

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java?rev=1745073&r1=1745072&r2=1745073&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java Sun May
22 16:08:51 2016
@@ -78,6 +78,7 @@ import org.apache.poi.sl.usermodel.Maste
 import org.apache.poi.sl.usermodel.PictureData.PictureType;
 import org.apache.poi.sl.usermodel.Resources;
 import org.apache.poi.sl.usermodel.SlideShow;
+import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.Units;
@@ -268,10 +269,10 @@ public final class HSLFSlideShow impleme
 					_documentRecord = (Document) record;
 					_fonts = _documentRecord.getEnvironment().getFontCollection();
 				}
-			} else {
+			} /*else {
 				// No record at this number
 				// Odd, but not normally a problem
-			}
+			}*/
 		}
 	}
 
@@ -295,8 +296,7 @@ public final class HSLFSlideShow impleme
 	private Record getCoreRecordForRefID(int refID) {
 		Integer coreRecordId = _sheetIdToCoreRecordsLookup.get(refID);
 		if (coreRecordId != null) {
-			Record r = _mostRecentCoreRecords[coreRecordId];
-			return r;
+			return _mostRecentCoreRecords[coreRecordId];
 		}
 		logger.log(POILogger.ERROR,
 				"We tried to look up a reference to a core record, but there was no core ID for reference
ID "
@@ -705,12 +705,10 @@ public final class HSLFSlideShow impleme
 	 */
 	@Override
 	public HSLFSlide createSlide() {
-		SlideListWithText slist = null;
-
 		// We need to add the records to the SLWT that deals
 		// with Slides.
 		// Add it, if it doesn't exist
-		slist = _documentRecord.getSlideSlideListWithText();
+		SlideListWithText slist = _documentRecord.getSlideSlideListWithText();
 		if (slist == null) {
 			// Need to add a new one
 			slist = new SlideListWithText();
@@ -828,24 +826,43 @@ public final class HSLFSlideShow impleme
 	}
 
 	/**
-	 * Adds a picture to this presentation and returns the associated index.
+	 * Adds a picture to the presentation.
+	 *
+	 * @param is	        The stream to read the image from
+	 * @param format        The format of the picture.
+	 *
+	 * @return the picture data.
+	 */
+	@Override
+	public HSLFPictureData addPicture(InputStream is, PictureType format) throws IOException
{
+	    if (format == null || format.nativeId == -1) { // fail early
+	        throw new IllegalArgumentException("Unsupported picture format: " + format);
+	    }
+	    return addPicture(IOUtils.toByteArray(is), format);
+	}
+
+	/**
+	 * Adds a picture to the presentation.
 	 *
 	 * @param pict
 	 *            the file containing the image to add
 	 * @param format
-	 *            the format of the picture. One of constans defined in the
-	 *            <code>Picture</code> class.
-	 * @return the index to this picture (1 based).
+	 *            The format of the picture.
+	 *
+	 * @return the picture data.
 	 */
+	@Override
 	public HSLFPictureData addPicture(File pict, PictureType format) throws IOException {
+	    if (format == null || format.nativeId == -1) { // fail early
+	        throw new IllegalArgumentException("Unsupported picture format: " + format);
+	    }
 		int length = (int) pict.length();
 		byte[] data = new byte[length];
-        FileInputStream is = null;
-        try {
-			is = new FileInputStream(pict);
-			is.read(data);
+        FileInputStream is = new FileInputStream(pict);
+		try {
+			IOUtils.readFully(is, data);
 		} finally {
-            if(is != null) is.close();
+            is.close();
         }
 		return addPicture(data, format);
 	}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message