/************************************************
聽* <p>java瀵瑰浘鐗囩殑鎿嶄綔(鍙兘浣跨敤jpg)</p>
聽* 瀵瑰浘鐗囩殑絳劇珷<br>
聽* 瀵瑰浘鐗囩殑緙╁浘<br>
聽* <p>Title:java瀵瑰浘鐗囩殑鎿嶄綔(鍙兘浣跨敤jpg)</p>
聽***********************************************/
package com.cn.wangk.test;
import java.io.*;
import com.sun.image.codec.jpeg.*;//sun鍏徃浠呮彁渚涗簡jpg鍥劇墖鏂囦歡鐨勭紪鐮乤pi
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import javax.imageio.ImageIO;
/**
聽* @author wangkai
聽*/
public class Test {
聽聽聽 /**
聽聽聽聽 *聽
聽聽聽聽 */
聽聽聽 public Test() {
聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽 //鐢熸垚浠ュ悗鏂扮殑鍥劇墖鍦板潃
聽聽聽聽聽聽聽聽聽聽聽 File fo = new File("c:\\4.jpg");
聽聽聽聽聽聽聽聽聽聽聽 //璇誨彇鐨勫浘鐗囨枃浠?br />聽聽聽聽聽聽聽聽聽聽聽 String imagePath = "C:\\Documents and Settings\\Administrator"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 + "\\My Documents\\My Pictures\\1.jpg";
聽聽聽聽聽聽聽聽聽聽聽 //鐩栫珷鐨勫浘鐗囨枃浠?br />聽聽聽聽聽聽聽聽聽聽聽 String toimagepth = "C:\\1.jpg";
聽聽聽聽聽聽聽聽聽聽聽 //寰楀埌鍥劇墖鐨勬枃浠舵祦
聽聽聽聽聽聽聽聽聽聽聽 InputStream imageIn;
聽聽聽聽聽聽聽聽聽聽聽 imageIn = new FileInputStream(new File(imagePath));
聽聽聽聽聽聽聽聽聽聽聽 //寰楀埌杈撳叆鐨勭紪鐮佸櫒錛屽皢鏂囦歡嫻佽繘琛宩pg鏍煎紡緙栫爜
聽聽聽聽聽聽聽聽聽聽聽 JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);
聽聽聽聽聽聽聽聽聽聽聽 //寰楀埌緙栫爜鍚庣殑鍥劇墖瀵硅薄
聽聽聽聽聽聽聽聽聽聽聽 BufferedImage image = decoder.decodeAsBufferedImage();
聽聽聽聽聽聽聽聽聽聽聽 Graphics g = image.getGraphics();
聽聽聽聽聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 InputStream imageIn2 = null;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 imageIn2 = new FileInputStream(new File(toimagepth));
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //寰楀埌杈撳叆鐨勭紪鐮佸櫒錛屽皢鏂囦歡嫻佽繘琛宩pg鏍煎紡緙栫爜
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 JPEGImageDecoder decoder2 = JPEGCodec
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .createJPEGDecoder(imageIn2);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //寰楀埌緙栫爜鍚庣殑鍥劇墖瀵硅薄
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 BufferedImage image2 = decoder2.decodeAsBufferedImage();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍔犵洊鍥劇墖绔?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ImageObserver obser = null;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int x = image.getWidth() - image2.getWidth();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int y = image.getHeight() - image2.getHeight();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 g.drawImage(image2, x, y, obser);
聽聽聽聽聽聽聽聽聽聽聽 } catch (FileNotFoundException e) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鎵撳紑鏂囦歡澶辮觸錛岃〃紺虹珷鍥劇墖涓嶅瓨鍦紝榪欐椂鍊欑洿鎺ュ姞鐩栨枃浠剁珷錛堢鍚嶏級
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 g.setFont(new Font("瀹嬩綋", Font.PLAIN, 18));
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 g.drawString("縐嬫按宸ヤ綔瀹?, image.getWidth() - 100,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 image.getHeight() - 20);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 g.drawString("water_wang@xs.zj.cn", image.getWidth() - 180,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 image.getHeight() - 10);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 g.dispose();
聽聽聽聽聽聽聽聽聽聽聽 ImageIO.write(image, "jpeg", fo);
聽聽聽聽聽聽聽聽聽聽聽 System.out.println("ok");
聽聽聽聽聽聽聽 } catch (FileNotFoundException e) {
聽聽聽聽聽聽聽聽聽聽聽 // 鑷姩鐢熸垚 catch 鍧?br />聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽 } catch (ImageFormatException e) {
聽聽聽聽聽聽聽聽聽聽聽 // 鑷姩鐢熸垚 catch 鍧?br />聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽 } catch (IOException e) {
聽聽聽聽聽聽聽聽聽聽聽 // 鑷姩鐢熸垚 catch 鍧?br />聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽 }
聽聽聽 }
聽聽聽 public static void saveFixedBoundIcon(File imageFile, int height, int width)
聽聽聽聽聽聽聽聽聽聽聽 throws Exception {
聽聽聽聽聽聽聽 double Ratio = 0.0;
聽聽聽聽聽聽聽 if (imageFile == null || !imageFile.isFile())
聽聽聽聽聽聽聽聽聽聽聽 throw new Exception(imageFile + "鎵句笉鍒版寚瀹氱殑鏂囦歡!");
聽聽聽聽聽聽聽 String filePath = imageFile.getPath();
聽聽聽聽聽聽聽 BufferedImage Bi = ImageIO.read(imageFile);
聽聽聽聽聽聽聽 if ((Bi.getHeight() > height) || (Bi.getWidth() > width)) {
聽聽聽聽聽聽聽聽聽聽聽 if (Bi.getHeight() > Bi.getWidth()) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Ratio = (new Integer(height)).doubleValue() / Bi.getHeight();
聽聽聽聽聽聽聽聽聽聽聽 } else {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Ratio = (new Integer(width)).doubleValue() / Bi.getWidth();
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 File savefile = new File(filePath + "_" + height + "_" + width
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 + ".jpg");
聽聽聽聽聽聽聽聽聽聽聽 Image Itemp = Bi.getScaledInstance(width, height,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Image.SCALE_SMOOTH);
聽聽聽聽聽聽聽聽聽聽聽 AffineTransformOp op = new AffineTransformOp(AffineTransform
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .getScaleInstance(Ratio, Ratio), null);
聽聽聽聽聽聽聽聽聽聽聽 Itemp = op.filter(Bi, null);
聽聽聽聽聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ImageIO.write((BufferedImage) Itemp, "jpeg", savefile);
聽聽聽聽聽聽聽聽聽聽聽 } catch (Exception ex) {
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽 }
聽聽聽 public static void main(String[] args) {
聽聽聽聽聽聽聽 //聽聽聽聽聽聽 Test ts = new Test();
聽聽聽聽聽聽聽 try {
聽聽聽聽聽聽聽聽聽聽聽 Test.saveFixedBoundIcon(new File(
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "C:\\test.jpg"), 200, 200);
聽聽聽聽聽聽聽 } catch (Exception e) {
聽聽聽聽聽聽聽聽聽聽聽 // 鑷姩鐢熸垚 catch 鍧?br />聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽 }
聽聽聽 }
}
鍑鴻嚜:Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=219915