package mircoders.entity;
+import mir.log.LoggerWrapper;
+import mir.media.image.ImageMagickImageProcessor;
+import mir.media.image.ImageProcessor;
+import mir.storage.DatabaseFailure;
+
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.SQLException;
-import mir.log.LoggerWrapper;
-import mir.storage.DatabaseFailure;
-import mir.util.StreamCopier;
-import mir.media.image.ImageProcessor;
-import mir.media.image.JAIImageProcessor;
-
public class EntityImages extends EntityUploadedMedia
{
private int maxImageSize = configuration.getInt("Producer.Image.MaxSize");
public EntityImages()
{
super();
-
- logger = new LoggerWrapper("Entity.UploadedMedia.Images");
}
/**
public void setImage(InputStream anInputStream, String type) throws DatabaseFailure {
if (anInputStream != null) {
try {
- ByteArrayOutputStream inputData = new ByteArrayOutputStream();
- StreamCopier.copy(anInputStream, inputData);
+ ImageProcessor processor = new ImageMagickImageProcessor(anInputStream);
- ImageProcessor processor = new JAIImageProcessor(inputData.toByteArray());
processor.descaleImage(maxImageSize, minDescaleRatio, minDescaleReduction);
ByteArrayOutputStream imageData = new ByteArrayOutputStream();
processor.writeScaledData(imageData, type);
database.setBinaryField("image_data", getId(), imageData.toByteArray());
- setFieldValue("img_height", new Integer(processor.getScaledHeight()).toString());
- setFieldValue("img_width", new Integer(processor.getScaledWidth()).toString());
+ setFieldValue("img_height", Integer.toString(processor.getScaledHeight()));
+ setFieldValue("img_width", Integer.toString(processor.getScaledWidth()));
imageData.reset();
processor.descaleImage(maxIconSize, minDescaleRatio, minDescaleReduction);
processor.writeScaledData(imageData, type);
database.setBinaryField("icon_data", getId(), imageData.toByteArray());
- setFieldValue("icon_height", new Integer(processor.getScaledHeight()).toString());
- setFieldValue("icon_width", new Integer(processor.getScaledWidth()).toString());
-
+ setFieldValue("icon_height", Integer.toString(processor.getScaledHeight()));
+ setFieldValue("icon_width", Integer.toString(processor.getScaledWidth()));
+ processor.cleanup();
update();
}
catch (Exception e) {