Java实现给网站上传图片盖章的方法

本文实例讲述了Java实现给网站上传图片盖章的方法。分享给大家供大家参考。具体如下:

最近无聊,上了一会校友录,觉的校友录的图片都会加入一个章,呵呵,自己也就做了一个,不过只适合jpg格式。发出来给大家研究研究。欢迎讨论!
很老的代码了

/************************************************
* 

java对图片的操作(只能使用jpg)

* 对图片的签章
* 对图片的缩图
*

Title:java对图片的操作(只能使用jpg)

*

CreateData: 2004-12-2

*

Description:

*

Copyright: Copyright (c) 2004

* @author 王凯 * @version 1.0 ***********************************************/ package com.cn.wangk.test; import java.io.*; import com.sun.image.codec.jpeg.*;//sun公司仅提供了jpg图片文件的编码api 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");       //读取的图片文件       String imagePath = "C:\\Documents and Settings\\Administrator"           + "\\My Documents\\My Pictures\\1.jpg";       //盖章的图片文件       String toimagepth = "C:\\1.jpg";       //得到图片的文件流       InputStream imageIn;       imageIn = new FileInputStream(new File(imagePath));       //得到输入的编码器,将文件流进行jpg格式编码       JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);       //得到编码后的图片对象       BufferedImage image = decoder.decodeAsBufferedImage();       Graphics g = image.getGraphics();       try {         InputStream imageIn2 = null;         imageIn2 = new FileInputStream(new File(toimagepth));         //得到输入的编码器,将文件流进行jpg格式编码         JPEGImageDecoder decoder2 = JPEGCodec             .createJPEGDecoder(imageIn2);         //得到编码后的图片对象         BufferedImage image2 = decoder2.decodeAsBufferedImage();         //加盖图片章         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("[email protected]", image.getWidth() - 180,             image.getHeight() - 10);       }       g.dispose();       ImageIO.write(image, "jpeg", fo);       System.out.println("ok");     } catch (FileNotFoundException e) {       // 自动生成 catch 块       e.printStackTrace();     } catch (ImageFormatException e) {       // 自动生成 catch 块       e.printStackTrace();     } catch (IOException e) {       // 自动生成 catch 块       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 块       e.printStackTrace();     }   } }

希望本文所述对大家的java程序设计有所帮助。

你可能感兴趣的:(Java实现给网站上传图片盖章的方法)