import java.awt.image.ImageProducer;
import java.io.File;
import java.io.FileOutputStream;
-import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import eu.svjatoslav.commons.file.FilePathParser;
import eu.svjatoslav.meviz.htmlindexer.Constants;
-import eu.svjatoslav.meviz.htmlindexer.ImageFormatError;
import eu.svjatoslav.meviz.htmlindexer.Utils;
import eu.svjatoslav.meviz.htmlindexer.metadata.Dimension;
public class Picture extends AbstractFile {
+ private static void ensureNonzeroImageArea(final java.awt.Dimension result) {
+ if (result.width < 1)
+ result.width = 1;
+ if (result.height < 1)
+ result.height = 1;
+ }
+
/**
* Actual returned target thumbnail size will be adjusted from desired one
* by attempting to generate as large as possible thumbnail, while not
desiredTargetDimension.width,
(int) (desiredTargetDimension.width / inputImageWidthToHeightRatio));
+ ensureNonzeroImageArea(result);
+
return result;
} else {
(int) (desiredTargetDimension.height * inputImageWidthToHeightRatio),
desiredTargetDimension.height);
+ ensureNonzeroImageArea(result);
+
return result;
}
}
public static Image scaleImage(final Image srcImage, final int width,
final int height) {
- ImageFilter filter;
- filter = new java.awt.image.AreaAveragingScaleFilter(width, height);
+ final ImageFilter filter = new java.awt.image.AreaAveragingScaleFilter(
+ width, height);
final ImageProducer prod = new FilteredImageSource(
srcImage.getSource(), filter);
final Image newImage = Toolkit.getDefaultToolkit().createImage(prod);
- final ImageIcon imageIcon = new ImageIcon(newImage);
- return imageIcon.getImage();
+ return new ImageIcon(newImage).getImage();
}
private static final long serialVersionUID = -4156533490858298387L;;
private Dimension dimensions;
public Picture(final File parentDirectory, final String fileName)
- throws IOException, ImageFormatError {
+ throws Exception {
super(parentDirectory, fileName);
}
}
@Override
- public void updateFileMetainfo(final File parentDirectory)
- throws IOException {
- BufferedImage image;
- try {
- image = Utils.getBufferedImage(getFile(parentDirectory));
- } catch (final ImageFormatError e) {
- throw new RuntimeException(e);
- }
+ public void updateFileMetainfo(final File parentDirectory) throws Exception {
+ final BufferedImage image = Utils
+ .getBufferedImage(getFile(parentDirectory));
dimensions = new Dimension(image.getWidth(), image.getHeight());
}