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

网友投稿 311 2023-07-31


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

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

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

很老的代码了

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

*

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

* 对图片的签章

* 对图片的缩图

*

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

*

CreateData: 2004-12-2

*

Description:

*

Copyright: Copyright (c) 2004

* @author 王凯

* @version 1.0

*******************http://****************************/

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:\\Documenhttp://ts 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);

        //http://得到编码后的图片对象

        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("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 块

      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程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现Html转Pdf的方法
下一篇:java实现适用于安卓的文件下载线程类
相关文章

 发表评论

暂时没有评论,来抢沙发吧~