package custom;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class MergeImages {
private static final int COMBINE_IMG_WIDTH = 180;
private static final int COMBINE_IMG_HEIGHT = 90;
private static final int POTRAIT_IMG_WIDTH = 70;
private static final int POTRAIT_IMG_HEIGHT = 90;
public static void main(String[] args) throws IOException {
File basePath = new File("f:/");
// load source images
BufferedImage background = ImageIO.read(new File(basePath, "back.png"));
BufferedImage overlay = ImageIO.read(new File(basePath, "land.png"));
int imageHeight = overlay.getHeight();
int imageWidth = overlay.getWidth();
System.out.println("height: "+imageHeight+" : "+"width: "+imageWidth);
if(imageHeight > imageWidth)
{
System.out.println("Potrate Thumnail");
BufferedImage resizeImage = resizePotraitImage(overlay, BufferedImage.TYPE_INT_ARGB);
// create the new image, canvas size is the max. of both image sizes
BufferedImage combined = new BufferedImage(COMBINE_IMG_WIDTH, COMBINE_IMG_HEIGHT, BufferedImage.TYPE_INT_ARGB);
// paint both images, preserving the alpha channels
Graphics g = combined.getGraphics();
g.drawImage(background, 0, 0, null);
g.drawImage(resizeImage, 55, 0, null);
// Save as new image
ImageIO.write(combined, "PNG", new File(basePath, "combined.png"));
}
else
{
System.out.println("Landescape Thumnail");
BufferedImage resizeImage = resizeLandscapeImage(overlay, BufferedImage.TYPE_INT_ARGB);
// paint both images, preserving the alpha channels
Graphics g = resizeImage.getGraphics();
g.drawImage(resizeImage, 0, 0, null);
// Save as new image
ImageIO.write(resizeImage, "PNG", new File(basePath, "combined.png"));
}
}
private static BufferedImage resizePotraitImage(BufferedImage originalImage, int type){
BufferedImage resizedImage = new BufferedImage(POTRAIT_IMG_WIDTH, POTRAIT_IMG_HEIGHT, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, POTRAIT_IMG_WIDTH, POTRAIT_IMG_HEIGHT, null);
g.dispose();
return resizedImage;
}
private static BufferedImage resizeLandscapeImage(BufferedImage originalImage, int type){
BufferedImage resizedImage = new BufferedImage(COMBINE_IMG_WIDTH, COMBINE_IMG_HEIGHT, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, COMBINE_IMG_WIDTH, COMBINE_IMG_HEIGHT, null);
g.dispose();
return resizedImage;
}
}
Tuesday, 2 July 2013
Resize , Merge Images Using Java
Labels:
ImageIO,
Tools & Utility
Subscribe to:
Post Comments (Atom)
Such intelligent work on the subject and ideal way of writing here. I am really impressed!
ReplyDeleteTorsion Springs