*/\r
package org.collectionspace.services.common.imaging.nuxeo;\r
\r
+import java.awt.Color;\r
+import java.awt.Font;\r
+import java.awt.Graphics;\r
+import java.awt.image.BufferedImage;\r
import java.io.File;\r
import java.io.ByteArrayOutputStream;\r
import java.io.InputStream;\r
import java.util.HashMap;\r
import java.util.List;\r
import java.util.Map;\r
+import java.util.Random;\r
+\r
+import javax.imageio.ImageIO;\r
\r
import org.nuxeo.runtime.api.Framework;\r
//import org.nuxeo.runtime.api.ServiceManager;\r
public static final String SCHEMA_IPTC = "iptc";\r
public static final String SCHEMA_IMAGE_METADATA = "image_metadata";\r
\r
+ private static final int THUMB_SIZE_HEIGHT = 100;\r
+\r
+ private static final int THUMB_SIZE_WIDTH = 75;\r
+\r
// static DefaultBinaryManager binaryManager = new DefaultBinaryManager();\r
// //can we get this from Nuxeo? i.e.,\r
// Framework.getService(BinaryManger.class)\r
Boolean getContentFlag,\r
StringBuffer outMimeType) {\r
BlobOutput result = new BlobOutput();\r
+ boolean isNonImageDerivative = false;\r
\r
if (repositoryId != null && repositoryId.isEmpty() == false)\r
try {\r
}\r
} else {\r
docBlob = docBlobHolder.getBlob();\r
+ if (derivativeTerm != null) { // If its a derivative request on a non-image blob, then return just a document image thumnail\r
+ isNonImageDerivative = true;\r
+ }\r
}\r
\r
//\r
BlobsCommon blobsCommon = createBlobsCommon(documentModel, docBlob);\r
result.setBlobsCommon(blobsCommon);\r
if (getContentFlag == true) {\r
- InputStream remoteStream = docBlob.getStream();\r
+ InputStream remoteStream = null;\r
+ if (isNonImageDerivative == false) {\r
+ remoteStream = docBlob.getStream();\r
+ } else {\r
+ remoteStream = NuxeoImageUtils.class.getClassLoader() // for now, non-image derivatives are just placeholder document images\r
+ .getResourceAsStream("documentImage.jpg");\r
+ outMimeType.append(MIME_JPEG);\r
+ }\r
BufferedInputStream bufferedInputStream = new BufferedInputStream(\r
remoteStream); // FIXME: REM - To improve performance, try\r
// BufferedInputStream(InputStream in, int size)?\r
result.setBlobInputStream(bufferedInputStream);\r
}\r
-\r
} catch (Exception e) {\r
if (logger.isErrorEnabled() == true) {\r
logger.error(e.getMessage(), e);\r
}\r
\r
return result;\r
- }\r
+ } \r
}\r
\r
/*\r