001 package com.khubla.pragmatach.plugin.responsive; 002 003 import java.awt.Graphics; 004 import java.awt.Image; 005 import java.awt.image.BufferedImage; 006 import java.io.InputStream; 007 import java.io.OutputStream; 008 009 import javax.imageio.ImageIO; 010 011 import com.khubla.pragmatach.framework.api.PragmatachException; 012 013 /** 014 * @author tome 015 */ 016 public class ImageResizer { 017 public static void resize(InputStream inputImage, OutputStream outputImage, double xscale, double yscale) throws PragmatachException { 018 try { 019 final BufferedImage bufferedImage = ImageIO.read(inputImage); 020 final int width = (int) Math.round(bufferedImage.getWidth() * xscale); 021 final int height = (int) Math.round(bufferedImage.getHeight() * yscale); 022 final Image scaledImage = bufferedImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); 023 final BufferedImage imageBuff = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 024 final Graphics g = imageBuff.createGraphics(); 025 g.drawImage(scaledImage, 0, 0, null, null); 026 g.dispose(); 027 ImageIO.write(imageBuff, "png", outputImage); 028 } catch (final Exception e) { 029 throw new PragmatachException("Exception in resize", e); 030 } 031 } 032 033 public static void resize(InputStream inputImage, OutputStream outputImage, int width, int height) throws PragmatachException { 034 try { 035 final BufferedImage bufferedImage = ImageIO.read(inputImage); 036 final Image scaledImage = bufferedImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); 037 final BufferedImage imageBuff = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 038 final Graphics g = imageBuff.createGraphics(); 039 g.drawImage(scaledImage, 0, 0, null, null); 040 g.dispose(); 041 ImageIO.write(imageBuff, "png", outputImage); 042 } catch (final Exception e) { 043 throw new PragmatachException("Exception in resize", e); 044 } 045 } 046 }