/* * Copyright 2013, Morten Nobel-Joergensen * * License: The BSD 3-Clause License * http://opensource.org/licenses/BSD-3-Clause */ package com.mortennobel.imagescaling; import javax.imageio.ImageIO; import java.io.IOException; import java.io.File; import java.awt.image.BufferedImage; import java.awt.*; /** */ public class CreateSharpenMaskTest { private BufferedImage image; private DimensionConstrain dimensionConstrain = DimensionConstrain.createMaxDimension(100,100); public CreateSharpenMaskTest() { setUp(); Dimension dim = dimensionConstrain.getDimension(new Dimension(image.getWidth(),image.getHeight())); BufferedImage res = new BufferedImage(dim.width*5,dim.height, BufferedImage.TYPE_INT_ARGB); Graphics2D g = res.createGraphics(); g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); for (ResampleOp.UnsharpenMask unsharpenMask : ResampleOp.UnsharpenMask.values()){ saveSubImageType(scale(unsharpenMask),g,unsharpenMask); } g.dispose(); saveImage(res, "SharpenMask.png"); } private void saveSubImageType(BufferedImage source, Graphics2D dest, ResampleOp.UnsharpenMask unsharpenMash){ int x = source.getWidth()*unsharpenMash.ordinal(); int height = dest.getFontMetrics().getHeight(); int margin = 5; dest.drawImage(source, x ,0,null); dest.setColor(new Color(1,1,1,0.5f)); dest.fillRect(x,0,source.getWidth(), height+2*margin); dest.setColor(Color.black); dest.drawString(unsharpenMash.name(),x+2,height+margin); } private void saveImage(BufferedImage bufferedImage, String s) { File file = new File(System.getProperty("user.dir"),s); try{ ImageIO.write(bufferedImage, "png", file); } catch (Exception e){ e.printStackTrace(); } } private BufferedImage scale(ResampleOp.UnsharpenMask mask) { ResampleOp op = new ResampleOp(dimensionConstrain); op.setUnsharpenMask(mask); return op.filter(image, null); } protected void setUp() { try { image = ImageIO.read(getClass().getResource("/com/mortennobel/imagescaling/flower.jpg")); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { new CreateSharpenMaskTest(); } }