X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fmedia%2FMediaHandlerImagesExtern.java;h=bb00c94fb06d4d3f8362d59d7ae62aafd45bef30;hb=d3e3f0ffeefd8692277d9a82af477a64ae85e118;hp=d12f111bc8e14853d61b18bc22dda61fe6216f7a;hpb=0e53bd53e4d1b96185c7caa91a9537ae98b9958e;p=mir.git diff --git a/source/mircoders/media/MediaHandlerImagesExtern.java b/source/mircoders/media/MediaHandlerImagesExtern.java index d12f111b..bb00c94f 100755 --- a/source/mircoders/media/MediaHandlerImagesExtern.java +++ b/source/mircoders/media/MediaHandlerImagesExtern.java @@ -30,31 +30,28 @@ package mircoders.media; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; - import mir.entity.Entity; import mir.log.LoggerWrapper; import mir.media.MediaExc; import mir.media.MediaFailure; -import mir.media.image.ImageProcessor; -// FIXME: delete this when finished testing ImageMagickImageProcessor -//import mir.media.image.JAIImageProcessor; import mir.media.image.ImageMagickImageProcessor; +import mir.media.image.ImageProcessor; import mir.misc.StringUtil; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; /** - * Image handler that stores images outside of the database. Will be replaced by the new - * media handling system. + * Image handler that stores images outside of the database. + * * @author Zapata * @version 1.0 */ -public class MediaHandlerImagesExtern extends MediaHandlerGeneric -{ +public class MediaHandlerImagesExtern extends MediaHandlerGeneric { private int maxIconSize; private float minDescaleRatio; private int minDescaleReduction; @@ -68,55 +65,56 @@ public class MediaHandlerImagesExtern extends MediaHandlerGeneric minDescaleReduction = configuration.getInt("Producer.Image.MinDescaleReduction"); } - public void produce(Entity anImageEntity, Entity mediaTypeEnt) throws MediaExc, MediaFailure { - try { + public void produce(Entity anImageEntity, Entity aMediaTypeEntity) throws MediaExc, MediaFailure { String date = anImageEntity.getFieldValue("date"); String datePath = StringUtil.webdbDate2path(date); - String ext = "." + mediaTypeEnt.getFieldValue("name"); + String ext = "." + aMediaTypeEntity.getFieldValue("name"); String fileBasePath = datePath + anImageEntity.getId(); String filePath = fileBasePath + ext; - String iconPath = getIconStoragePath() + fileBasePath + ".jpg"; + String iconPath = getBaseIconStoragePath() + fileBasePath + ".jpg"; String iconStoragePath = configuration.getString("Producer.StorageRoot") + iconPath; - String imageFilePath = getStoragePath() + File.separator + filePath; + String imageFilePath = getBaseStoragePath() + File.separator + filePath; File imageFile = new File(imageFilePath); File iconFile = new File(iconStoragePath); if (!imageFile.exists()) { - throw new MediaExc("error in MediaHandlerImagesExtern.produce(): " + filePath + " does not exist!"); + throw new MediaExc("error in MediaHandlerImagesExtern.execute(): " + filePath + " does not exist!"); } else { - // FIXME: delete this when finished testing ImageMagickImageProcessor - // ImageProcessor processor = new JAIImageProcessor(imageFile); - ImageProcessor processor = new ImageMagickImageProcessor(imageFile); + ImageProcessor processor; + try { + processor = new ImageMagickImageProcessor(imageFile); + } + catch (IOException e) { + throw new MediaFailure(e); + } processor.descaleImage(maxIconSize, minDescaleRatio, minDescaleReduction); File dir = new File(iconFile.getParent()); - if (dir!=null && !dir.exists()){ - dir.mkdirs(); + if (dir!=null && !dir.exists()){ + dir.mkdirs(); } processor.writeScaledData(iconFile, "JPEG"); - anImageEntity.setFieldValue("img_height", new Integer(processor.getHeight()).toString()); - anImageEntity.setFieldValue("img_width", new Integer(processor.getWidth()).toString()); + anImageEntity.setFieldValue("img_height", + Integer.toString(processor.getHeight())); + anImageEntity.setFieldValue("img_width", + Integer.toString(processor.getWidth())); - anImageEntity.setFieldValue("icon_height", new Integer(processor.getScaledHeight()).toString()); - anImageEntity.setFieldValue("icon_width", new Integer(processor.getScaledWidth()).toString()); + anImageEntity.setFieldValue("icon_height", + Integer.toString(processor.getScaledHeight())); + anImageEntity.setFieldValue("icon_width", + Integer.toString(processor.getScaledWidth())); processor.cleanup(); anImageEntity.setFieldValue("icon_path", iconPath); anImageEntity.setFieldValue("publish_path", filePath); anImageEntity.update(); - - + reportChange(iconStoragePath); + reportChange(imageFilePath); } - } - catch(Throwable t) { - logger.error("MediaHandlerImagesExtern.produce: " + t.toString()); - t.printStackTrace(logger.asPrintWriter(LoggerWrapper.DEBUG_MESSAGE)); - throw new MediaFailure(t.getMessage(), t); - } } @@ -142,12 +140,12 @@ public class MediaHandlerImagesExtern extends MediaHandlerGeneric return "image/jpeg"; } - public String getStoragePath() + public String getBaseStoragePath() { return configuration.getString("Producer.Image.Path"); } - public String getIconStoragePath() + public String getBaseIconStoragePath() { return configuration.getString("Producer.Image.IconPath"); }