package com.swingsane.business.image.transform; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.imgscalr.Scalr; import org.imgscalr.Scalr.Rotation; import com.swingsane.gui.panel.ITransformSettingsPanel; import com.swingsane.gui.panel.RotateTransformSettingsPanel; import com.swingsane.preferences.IPreferredDefaults; /** * @author Roland Quast (roland@formreturn.com) * */ public class RotateTransform implements IImageTransform { private Rotation rotation; private File sourceImageFile; private File outputImageFile; private static final ImageTransformType imageTransformType = ImageTransformType.ROTATE; @Override public void configure(IPreferredDefaults preferredDefaultsImpl) { rotation = preferredDefaultsImpl.getDefaultRotation(); } @Override public final File getOutputImageFile() { return outputImageFile; } public final Rotation getRotation() { return rotation; } @Override public final File getSourceImageFile() { return sourceImageFile; } @Override public final ITransformSettingsPanel getTransformSettingsPanel() { RotateTransformSettingsPanel transformSettingsPanel = new RotateTransformSettingsPanel(); transformSettingsPanel.setTransform(this); return transformSettingsPanel; } @Override public final void setOutputImageFile(File outputImageFile) { this.outputImageFile = outputImageFile; } public final void setRotation(Rotation rotation) { this.rotation = rotation; } @Override public final void setSourceImageFile(File sourceImageFile) { this.sourceImageFile = sourceImageFile; } @Override public final String toString() { return imageTransformType.toString(); } @Override public final void transform() throws IOException { BufferedImage bufferedImage = Scalr.rotate(ImageIO.read(sourceImageFile), rotation); ImageIO.write(bufferedImage, "PNG", outputImageFile); } }