-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy\r
-* http://www.e-taxonomy.eu\r
-*\r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.cdm.common.media;\r
-\r
-import java.io.IOException;\r
-import java.io.InputStream;\r
-import java.net.URI;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.apache.commons.imaging.ImageReadException;\r
-import org.apache.commons.imaging.Imaging;\r
-import org.apache.commons.imaging.common.GenericImageMetadata.GenericImageMetadataItem;\r
-import org.apache.commons.imaging.common.ImageMetadata;\r
-import org.apache.commons.imaging.common.ImageMetadata.ImageMetadataItem;\r
-import org.apache.commons.lang.StringUtils;\r
-import org.apache.http.HttpException;\r
-import org.apache.http.client.ClientProtocolException;\r
-import org.apache.log4j.Logger;\r
-\r
-import eu.etaxonomy.cdm.common.UriUtils;\r
-\r
-/**\r
- * @author k.luther\r
- * @author a.mueller\r
- * @since 27.11.2009\r
- */\r
-public class ImageInfo extends MediaInfo {\r
- private static Logger logger = Logger.getLogger(ImageInfo.class);\r
-\r
- private int width;\r
- private int height;\r
- private int bitPerPixel;\r
- private final URI imageUri;\r
-\r
- private Map<String, String> metaData;\r
-\r
-//********************** Factory Methods ******************************/\r
-\r
- public static ImageInfo NewInstance(URI imageUri, Integer timeOut) throws IOException, HttpException {\r
- ImageInfo instance = new ImageInfo(imageUri);\r
- instance.readSuffix();\r
- instance.readImageLength();\r
- instance.readImageInfo(timeOut);\r
- return instance;\r
- }\r
-\r
- public static ImageInfo NewInstanceWithMetaData(URI imageUri, Integer timeOut) throws IOException, HttpException {\r
- ImageInfo instance = NewInstance(imageUri, timeOut);\r
-\r
- instance.readMetaData(timeOut);\r
-\r
- return instance;\r
- }\r
-\r
-//*********************** CONSTRUCTOR **************************************/\r
-\r
- private ImageInfo(URI imageUri){\r
- this.imageUri = imageUri;\r
- }\r
-\r
-//*************************** GETTER /SETTER *******************************/\r
-\r
- public URI getUri() {\r
- return imageUri;\r
- }\r
-\r
- public int getWidth() {\r
- return width;\r
- }\r
-\r
- public int getHeight() {\r
- return height;\r
- }\r
-\r
- public int getBitPerPixel() {\r
- return bitPerPixel;\r
- }\r
-\r
- public Map<String, String> getMetaData(){\r
- return metaData;\r
- }\r
-\r
-//**************************** METHODS *****************************/\r
-\r
- private void readSuffix(){\r
- String path = imageUri.getPath();\r
-\r
- String suffix = path.substring(StringUtils.lastIndexOf(path, '.') + 1);\r
- setSuffix(suffix);\r
- }\r
-\r
- private void readImageLength() throws ClientProtocolException, IOException, HttpException{\r
- try {\r
- long length = UriUtils.getResourceLength(imageUri, null);\r
- setLength(length);\r
- } catch (HttpException e) {\r
- if (e.getMessage().equals("Could not retrieve Content-Length")){\r
- InputStream inputStream = UriUtils.getInputStream(imageUri);\r
- int n = 0;\r
- while(inputStream.read() != -1){\r
- n++;\r
- }\r
- inputStream.close();\r
- logger.info("Content-Length not available in http header. Image size computed via input stream size: " + imageUri);\r
- setLength(n);\r
- }else{\r
- throw e;\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * Reads the image infos (width, height, bitPerPixel, metadata, format, mime type)\r
- * @param timeOut\r
- * @throws IOException\r
- * @throws HttpException\r
- */\r
- private void readImageInfo(Integer timeOut) throws IOException, HttpException{\r
-\r
- InputStream inputStream;\r
- try {\r
- inputStream = UriUtils.getInputStream(imageUri);\r
- ImageInfo imageInfo = Imaging.getImageInfo(inputStream, null);\r
-\r
- setFormatName(imageInfo.getFormatName());\r
- setMimeType(imageInfo.getMimeType());\r
- width = imageInfo.getWidth();\r
- height = imageInfo.getHeight();\r
- bitPerPixel = imageInfo.getBitsPerPixel();\r
- inputStream.close();\r
-\r
- } catch (ImageReadException e) {\r
- logger.error("Could not read: " + imageUri + ". " + e.getMessage());\r
- throw new IOException(e);\r
- }\r
- }\r
-\r
-\r
- /**\r
- * @param timeOut TODO is not yet used\r
- * @return\r
- * @throws IOException\r
- * @throws HttpException\r
- */\r
- public Map<String, String> readMetaData(Integer timeOut) throws IOException, HttpException {\r
-\r
- try {\r
- InputStream inputStream = UriUtils.getInputStream(imageUri);\r
-\r
- ImageMetadata mediaData = Imaging.getMetadata(inputStream, null);\r
-\r
- if (mediaData != null){\r
- metaData = new HashMap<>();\r
- for (ImageMetadataItem item2 : mediaData.getItems()){\r
- if (item2 instanceof GenericImageMetadataItem){\r
- GenericImageMetadataItem item = (GenericImageMetadataItem)item2;\r
- if (item.getKeyword().contains("/")){\r
- String key = item.getKeyword();\r
- //key.replace("/", "");\r
- int index = key.indexOf("/");\r
- key = key.substring(0, index);\r
- metaData.put(key, text(item));\r
- }else{\r
- metaData.put(item.getKeyword(), text(item));\r
- }\r
- }\r
- }\r
- }\r
- }\r
- catch (ImageReadException e) {\r
- logger.error("Could not read: " + imageUri + ". " + e.getMessage());\r
- //throw new IOException(e);\r
- }\r
- return metaData;\r
- }\r
-\r
- /**\r
- * Wrapper for the Item.getText() method which applies cleaning of the text representation.\r
- *\r
- * <ol>\r
- * <li>Strings are surrounded by single quotes, these must be removed</li>\r
- * </ol>\r
- * @param item\r
- */\r
- private String text(GenericImageMetadataItem item) {\r
- String text = item.getText();\r
- if(text.startsWith("'") && text.endsWith("'")) {\r
- text = text.substring(1 , text.length() - 1);\r
- }\r
- return text;\r
- }\r
-\r
-// ******************* TO STRING **********************************/\r
-\r
- @Override\r
- public String toString(){\r
- return getFormatName() + " [" + getMimeType()+ "] w:" + width + " h:" + height + " depth:" + bitPerPixel;\r
- }\r
-}\r
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.common.media;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.imaging.ImageInfo;
+import org.apache.commons.imaging.ImageReadException;
+import org.apache.commons.imaging.Imaging;
+import org.apache.commons.imaging.common.GenericImageMetadata.GenericImageMetadataItem;
+import org.apache.commons.imaging.common.ImageMetadata;
+import org.apache.commons.imaging.common.ImageMetadata.ImageMetadataItem;
+import org.apache.commons.lang.StringUtils;
+import org.apache.http.HttpException;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.common.UriUtils;
+
+/**
+ * @author k.luther
+ * @author a.mueller
+ * @since 27.11.2009
+ */
+public class CdmImageInfo extends MediaInfo {
+ private static Logger logger = Logger.getLogger(CdmImageInfo.class);
+
+ private int width;
+ private int height;
+ private int bitPerPixel;
+ private final URI imageUri;
+
+ private Map<String, String> metaData;
+
+//********************** Factory Methods ******************************/
+
+ public static CdmImageInfo NewInstance(URI imageUri, Integer timeOut) throws IOException, HttpException {
+ CdmImageInfo instance = new CdmImageInfo(imageUri);
+ instance.readSuffix();
+ instance.readImageLength();
+ instance.readImageInfo(timeOut);
+ return instance;
+ }
+
+ public static CdmImageInfo NewInstanceWithMetaData(URI imageUri, Integer timeOut) throws IOException, HttpException {
+ CdmImageInfo instance = NewInstance(imageUri, timeOut);
+
+ instance.readMetaData(timeOut);
+
+ return instance;
+ }
+
+//*********************** CONSTRUCTOR **************************************/
+
+ private CdmImageInfo(URI imageUri){
+ this.imageUri = imageUri;
+ }
+
+//*************************** GETTER /SETTER *******************************/
+
+ public URI getUri() {
+ return imageUri;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public int getBitPerPixel() {
+ return bitPerPixel;
+ }
+
+ public Map<String, String> getMetaData(){
+ return metaData;
+ }
+
+//**************************** METHODS *****************************/
+
+ private void readSuffix(){
+ String path = imageUri.getPath();
+
+ String suffix = path.substring(StringUtils.lastIndexOf(path, '.') + 1);
+ setSuffix(suffix);
+ }
+
+ private void readImageLength() throws ClientProtocolException, IOException, HttpException{
+ try {
+ long length = UriUtils.getResourceLength(imageUri, null);
+ setLength(length);
+ } catch (HttpException e) {
+ if (e.getMessage().equals("Could not retrieve Content-Length")){
+ InputStream inputStream = UriUtils.getInputStream(imageUri);
+ int n = 0;
+ while(inputStream.read() != -1){
+ n++;
+ }
+ inputStream.close();
+ logger.info("Content-Length not available in http header. Image size computed via input stream size: " + imageUri);
+ setLength(n);
+ }else{
+ throw e;
+ }
+ }
+ }
+
+ /**
+ * Reads the image infos (width, height, bitPerPixel, metadata, format, mime type)
+ * @param timeOut
+ * @throws IOException
+ * @throws HttpException
+ */
+ private void readImageInfo(Integer timeOut) throws IOException, HttpException{
+
+ InputStream inputStream;
+ try {
+ inputStream = UriUtils.getInputStream(imageUri);
+ ImageInfo imageInfo = Imaging.getImageInfo(inputStream, null);
+
+ setFormatName(imageInfo.getFormatName());
+ setMimeType(imageInfo.getMimeType());
+ width = imageInfo.getWidth();
+ height = imageInfo.getHeight();
+ bitPerPixel = imageInfo.getBitsPerPixel();
+ inputStream.close();
+
+ } catch (ImageReadException e) {
+ logger.error("Could not read: " + imageUri + ". " + e.getMessage());
+ throw new IOException(e);
+ }
+ }
+
+
+ /**
+ * @param timeOut TODO is not yet used
+ * @return
+ * @throws IOException
+ * @throws HttpException
+ */
+ public Map<String, String> readMetaData(Integer timeOut) throws IOException, HttpException {
+
+ try {
+ InputStream inputStream = UriUtils.getInputStream(imageUri);
+
+ ImageMetadata mediaData = Imaging.getMetadata(inputStream, null);
+
+ if (mediaData != null){
+ metaData = new HashMap<>();
+ for (ImageMetadataItem item2 : mediaData.getItems()){
+ if (item2 instanceof GenericImageMetadataItem){
+ GenericImageMetadataItem item = (GenericImageMetadataItem)item2;
+ if (item.getKeyword().contains("/")){
+ String key = item.getKeyword();
+ //key.replace("/", "");
+ int index = key.indexOf("/");
+ key = key.substring(0, index);
+ metaData.put(key, text(item));
+ }else{
+ metaData.put(item.getKeyword(), text(item));
+ }
+ }
+ }
+ }
+ }
+ catch (ImageReadException e) {
+ logger.error("Could not read: " + imageUri + ". " + e.getMessage());
+ //throw new IOException(e);
+ }
+ return metaData;
+ }
+
+ /**
+ * Wrapper for the Item.getText() method which applies cleaning of the text representation.
+ *
+ * <ol>
+ * <li>Strings are surrounded by single quotes, these must be removed</li>
+ * </ol>
+ * @param item
+ */
+ private String text(GenericImageMetadataItem item) {
+ String text = item.getText();
+ if(text.startsWith("'") && text.endsWith("'")) {
+ text = text.substring(1 , text.length() - 1);
+ }
+ return text;
+ }
+
+// ******************* TO STRING **********************************/
+
+ @Override
+ public String toString(){
+ return getFormatName() + " [" + getMimeType()+ "] w:" + width + " h:" + height + " depth:" + bitPerPixel;
+ }
+}
/**
* @author n.hoffmann
*/
-public class ImageInfoTest {
+public class CdmImageInfoTest {
private static final String OFFLINE = "OFFLINE";
- public static final Logger logger = Logger.getLogger(ImageInfoTest.class);
+ public static final Logger logger = Logger.getLogger(CdmImageInfoTest.class);
private URI jpegUri;
private URI tiffUri;
- private ImageInfo jpegInstance;
- private ImageInfo tifInstance;
+ private CdmImageInfo jpegInstance;
+ private CdmImageInfo tifInstance;
private URI remotePngUri;
- private ImageInfo pngInstance;
+ private CdmImageInfo pngInstance;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
- URL jpegUrl = ImageInfoTest.class.getResource("/images/OregonScientificDS6639-DSC_0307-small.jpg");
+ URL jpegUrl = CdmImageInfoTest.class.getResource("/images/OregonScientificDS6639-DSC_0307-small.jpg");
jpegUri = jpegUrl.toURI();
- URL tiffUrl = ImageInfoTest.class.getResource("/images/OregonScientificDS6639-DSC_0307-small.tif");
+ URL tiffUrl = CdmImageInfoTest.class.getResource("/images/OregonScientificDS6639-DSC_0307-small.tif");
tiffUri = tiffUrl.toURI();
remotePngUri = URI.create("https://dev.e-taxonomy.eu/trac_htdocs/logo_edit.png");
@Test
public void testNewInstanceJpeg(){
try {
- ImageInfo.NewInstance(jpegUri, 0);
+ CdmImageInfo.NewInstance(jpegUri, 0);
} catch (Exception e) {
fail("NewInstance method should not throw exceptions for existing uncorrupted images.");
}
@Test
public void testNewInstanceTiff() {
try {
- ImageInfo.NewInstance(tiffUri, 0);
+ CdmImageInfo.NewInstance(tiffUri, 0);
} catch (Exception e) {
fail("NewInstance method should not throw exceptions for existing uncorrupted images.");
}
public void testNewInstanceRemotePng() {
if(UriUtils.isInternetAvailable(remotePngUri)){
try {
- ImageInfo.NewInstance(remotePngUri, 3000);
+ CdmImageInfo.NewInstance(remotePngUri, 3000);
} catch (Exception e) {
fail("NewInstance method should not throw exceptions for existing uncorrupted images.");
}
public void testNewInstanceFileDoesNotExist() throws HttpException, IOException {
URI nonExistentUri = URI.create("file:///nonExistentImage.jpg");
- ImageInfo.NewInstance(nonExistentUri, 0);
+ CdmImageInfo.NewInstance(nonExistentUri, 0);
}
- private ImageInfo getJpegInstance(){
+ private CdmImageInfo getJpegInstance(){
if(jpegInstance == null){
try {
- jpegInstance = ImageInfo.NewInstance(jpegUri, 0);
+ jpegInstance = CdmImageInfo.NewInstance(jpegUri, 0);
} catch (Exception e) {
fail("This case should have been covered by other tests.");
return null;
return jpegInstance;
}
- private ImageInfo getTifInstance(){
+ private CdmImageInfo getTifInstance(){
if(tifInstance == null){
try {
- tifInstance = ImageInfo.NewInstance(tiffUri, 0);
+ tifInstance = CdmImageInfo.NewInstance(tiffUri, 0);
} catch (Exception e) {
fail("This case should have been covered by other tests.");
return null;
return tifInstance;
}
- private ImageInfo getRemotePngInstance() throws IOException{
+ private CdmImageInfo getRemotePngInstance() throws IOException{
if (!UriUtils.isInternetAvailable(remotePngUri)){
throw new IOException(OFFLINE);
}
if(pngInstance == null){
try {
- pngInstance = ImageInfo.NewInstance(remotePngUri, 3000);
+ pngInstance = CdmImageInfo.NewInstance(remotePngUri, 3000);
} catch (Exception e) {
fail("This case should have been covered by other tests.");
return null;
}
/**
- * Test method for {@link eu.etaxonomy.cdm.common.media.ImageInfo#getWidth()}.
+ * Test method for {@link eu.etaxonomy.cdm.common.media.CdmImageInfo#getWidth()}.
*/
@Test
public void testGetWidth() {
}
/**
- * Test method for {@link eu.etaxonomy.cdm.common.media.ImageInfo#getHeight()}.
+ * Test method for {@link eu.etaxonomy.cdm.common.media.CdmImageInfo#getHeight()}.
*/
@Test
public void testGetHeight() {
}
/**
- * Test method for {@link eu.etaxonomy.cdm.common.media.ImageInfo#getBitPerPixel()}.
+ * Test method for {@link eu.etaxonomy.cdm.common.media.CdmImageInfo#getBitPerPixel()}.
*/
@Test
public void testGetBitPerPixel() {
}
/**
- * Test method for {@link eu.etaxonomy.cdm.common.media.ImageInfo#getFormatName()}.
+ * Test method for {@link eu.etaxonomy.cdm.common.media.CdmImageInfo#getFormatName()}.
*/
@Test
public void testGetFormatName() {
}
/**
- * Test method for {@link eu.etaxonomy.cdm.common.media.ImageInfo#getMimeType()}.
+ * Test method for {@link eu.etaxonomy.cdm.common.media.CdmImageInfo#getMimeType()}.
*/
@Test
public void testGetMimeType() {
@Test
public void testReadMetaDataJpeg() throws IOException, HttpException{
- ImageInfo instance = getJpegInstance();
+ CdmImageInfo instance = getJpegInstance();
instance.readMetaData(0);
@Test
public void testReadMetaDataTif() throws IOException, HttpException{
- ImageInfo instance = getTifInstance();
+ CdmImageInfo instance = getTifInstance();
instance.readMetaData(0);
public void testReadMetaDataRemotePng() throws HttpException{
try {
- ImageInfo instance = getRemotePngInstance();
+ CdmImageInfo instance = getRemotePngInstance();
instance.readMetaData(3000);
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.common.UriUtils;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.model.agent.Institution;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
JSONObject mediaRecord;
Media media;
URI uri = null;
- ImageInfo imageInf = null;
+ CdmImageInfo imageInf = null;
MediaRepresentation representation = null;
SpecimenOrObservationType type = null;
for(Object object:multimediaArray){
if (mediaRecord.has("identifier")){
try {
uri = new URI(mediaRecord.getString("identifier"));
- imageInf = ImageInfo.NewInstance(uri, 0);
+ imageInf = CdmImageInfo.NewInstance(uri, 0);
} catch (URISyntaxException |IOException | HttpException e) {
e.printStackTrace();
}
import eu.etaxonomy.cdm.api.application.ICdmRepository;
import eu.etaxonomy.cdm.api.service.pager.Pager;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;
import eu.etaxonomy.cdm.io.markup.MarkupTransformer;
*/
private MediaRepresentation makeMediaRepresentation(String uriString, boolean readMediaData) throws URISyntaxException {
uriString = uriString.replace(" ", "%20"); //replace whitespace
- ImageInfo imageInfo = null;
+ CdmImageInfo cdmImageInfo = null;
URI uri = new URI(uriString);
try {
if (readMediaData){
logger.info("Read media data from: " + uri);
- imageInfo = ImageInfo.NewInstance(uri, 0);
+ cdmImageInfo = CdmImageInfo.NewInstance(uri, 0);
}
} catch (Exception e) {
String message = "An error occurred when trying to read image meta data for " + uri.toString() + ": " + e.getMessage();
logger.warn(message);
fireWarningEvent(message, "unknown location", 2, 0);
}
- ImageFile imageFile = ImageFile.NewInstance(uri, null, imageInfo);
+ ImageFile imageFile = ImageFile.NewInstance(uri, null, cdmImageInfo);
MediaRepresentation representation = MediaRepresentation.NewInstance();
- if(imageInfo != null){
- representation.setMimeType(imageInfo.getMimeType());
- representation.setSuffix(imageInfo.getSuffix());
+ if(cdmImageInfo != null){
+ representation.setMimeType(cdmImageInfo.getMimeType());
+ representation.setSuffix(cdmImageInfo.getSuffix());
}
representation.addRepresentationPart(imageFile);
return representation;
import org.joda.time.Partial;
import org.springframework.stereotype.Component;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.io.common.utils.ImportDeduplicationHelper;
import eu.etaxonomy.cdm.io.excel.common.ExcelImportBase;
import eu.etaxonomy.cdm.io.excel.common.ExcelRowBase;
}
private void handleUri(MediaExcelImportState state, URI uri, Media media, String line) {
- ImageInfo imageInfo = null;
+ CdmImageInfo cdmImageInfo = null;
try {
if (state.getConfig().isReadMediaData()){
- imageInfo = ImageInfo.NewInstance(uri, 0);
+ cdmImageInfo = CdmImageInfo.NewInstance(uri, 0);
}
} catch (Exception e) {
String message = "An error occurred when trying to read image meta data for %s. Image was created but without metadata.";
message = String.format(message, uri.toString());
state.getResult().addException(e, message, null, line);
}
- ImageFile imageFile = ImageFile.NewInstance(uri, null, imageInfo);
+ ImageFile imageFile = ImageFile.NewInstance(uri, null, cdmImageInfo);
MediaRepresentation representation = MediaRepresentation.NewInstance();
- if(imageInfo != null){
- representation.setMimeType(imageInfo.getMimeType());
- representation.setSuffix(imageInfo.getSuffix());
+ if(cdmImageInfo != null){
+ representation.setMimeType(cdmImageInfo.getMimeType());
+ representation.setSuffix(cdmImageInfo.getSuffix());
}
representation.addRepresentationPart(imageFile);
media.addRepresentation(representation);
import org.springframework.transaction.TransactionStatus;\r
\r
import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
-import eu.etaxonomy.cdm.common.media.ImageInfo;\r
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
import eu.etaxonomy.cdm.io.common.ICdmImport;\r
import eu.etaxonomy.cdm.io.common.ImportHelper;\r
Element elSource = elMO.getChild("Source",sddNamespace);\r
String href = elSource.getAttributeValue("href");\r
\r
- ImageInfo imageMetaData = null;\r
+ CdmImageInfo imageMetaData = null;\r
ImageFile image = null;\r
\r
if (href.substring(0,7).equals("http://")) {\r
try{\r
URL url = new URL(href);\r
\r
- imageMetaData = ImageInfo.NewInstance(url.toURI(), 0);\r
+ imageMetaData = CdmImageInfo.NewInstance(url.toURI(), 0);\r
image = ImageFile.NewInstance(url.toURI(), null, imageMetaData);\r
} catch (MalformedURLException e) {\r
logger.error("Malformed URL", e);\r
File parent = f.getParentFile();\r
String fi = parent.toString() + File.separator + href;\r
File file = new File(fi);\r
- imageMetaData = ImageInfo.NewInstance(new URI(fi), 0); //file\r
+ imageMetaData = CdmImageInfo.NewInstance(new URI(fi), 0); //file\r
image = ImageFile.NewInstance(file.toURI(), null, imageMetaData);\r
}\r
MediaRepresentation representation = MediaRepresentation.NewInstance(imageMetaData.getMimeType(), null);\r
import org.apache.log4j.Logger;
import org.hibernate.envers.Audited;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.TimePeriod;
return new ImageFile(uri, size, height, width);
}
- public static ImageFile NewInstance(URI uri, Integer size, ImageInfo imageInfo){
+ public static ImageFile NewInstance(URI uri, Integer size, CdmImageInfo cdmImageInfo){
ImageFile imageFile = NewInstance(uri, size);
- if(imageInfo != null){
- imageFile.setHeight(imageInfo.getHeight());
- imageFile.setWidth(imageInfo.getWidth());
- if(imageInfo.getLength() != 0){
- imageFile.setSize((int)imageInfo.getLength());
+ if(cdmImageInfo != null){
+ imageFile.setHeight(cdmImageInfo.getHeight());
+ imageFile.setWidth(cdmImageInfo.getWidth());
+ if(cdmImageInfo.getLength() != 0){
+ imageFile.setSize((int)cdmImageInfo.getLength());
}
}
\r
import eu.etaxonomy.cdm.api.service.IMediaService;\r
import eu.etaxonomy.cdm.api.service.MediaServiceImpl;\r
-import eu.etaxonomy.cdm.common.media.ImageInfo;\r
import eu.etaxonomy.cdm.model.media.Media;\r
import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
import eu.etaxonomy.cdm.remote.exception.NoRecordsMatchException;\r
MediaRepresentation mediaRepresentation = representations.iterator().next();\r
URI uri = mediaRepresentation.getParts().get(0).getUri();\r
try {\r
- ImageInfo imageInfo = ImageInfo.NewInstanceWithMetaData(uri, MediaServiceImpl.IMAGE_READ_TIMEOUT);\r
- result = imageInfo.getMetaData();\r
+ ImageInfo imageInfo = CdmImageInfo.NewInstanceWithMetaData(uri, MediaServiceImpl.IMAGE_READ_TIMEOUT);\r
+ result = cdmImageInfo.getMetaData();\r
\r
} catch (HttpException e) {\r
logger.info(e.getMessage());\r
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.MediaServiceImpl;
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;
-import eu.etaxonomy.cdm.common.media.ImageInfo;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.model.common.Credit;
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.Language;
}
if (part.getUri() != null) {
try {
- ImageInfo imageInfo = ImageInfo.NewInstanceWithMetaData(part.getUri(), MediaServiceImpl.IMAGE_READ_TIMEOUT);
- Map<String, String> result = imageInfo.getMetaData();
+ CdmImageInfo cdmImageInfo = CdmImageInfo.NewInstanceWithMetaData(part.getUri(), MediaServiceImpl.IMAGE_READ_TIMEOUT);
+ Map<String, String> result = cdmImageInfo.getMetaData();
if(result != null){
for (String key : result.keySet()) {
metadata.add(new MetadataEntry(key, result.get(key)));