欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法

 更新時間:2015年07月24日 12:54:44   作者:罪惡的花生  
這篇文章主要介紹了Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法,涉及java針對圖片的合成操作技巧,類似水印功能,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)給網(wǎng)站上傳圖片蓋章的方法。分享給大家供大家參考。具體如下:

最近無聊,上了一會校友錄,覺的校友錄的圖片都會加入一個章,呵呵,自己也就做了一個,不過只適合jpg格式。發(fā)出來給大家研究研究。歡迎討論!
很老的代碼了

/************************************************
* <p>java對圖片的操作(只能使用jpg)</p>
* 對圖片的簽章<br>
* 對圖片的縮圖<br>
* <p>Title:java對圖片的操作(只能使用jpg)</p>
* <p>CreateData: 2004-12-2</p>
* <p>Description:</p>
* <p>Copyright: Copyright (c) 2004</p>
* @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("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程序設(shè)計有所幫助。

相關(guān)文章

  • 實例解析Java程序中正則表達式的貪婪模式匹配

    實例解析Java程序中正則表達式的貪婪模式匹配

    貪婪模式又叫最大匹配,X?、X*、X+、X{n,}都是最大匹配,例如你要用“<.+>”去匹配“a<tr>aava </tr>abb”,也許你所期待的結(jié)果是想匹配“<tr>”,但是實際結(jié)果卻會匹配到“<tr>aava </tr>”,下面我們就來看具體看一下貪婪模式的使用.
    2016-05-05
  • Spring?注入集合實現(xiàn)過程示例詳解

    Spring?注入集合實現(xiàn)過程示例詳解

    這篇文章主要為大家介紹了Spring?注入集合實現(xiàn)過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • 基于Properties文件中的空格問題

    基于Properties文件中的空格問題

    這篇文章主要介紹了Properties文件中的空格問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring中@Scheduled功能的使用方法詳解

    Spring中@Scheduled功能的使用方法詳解

    @Scheduled 由Spring定義,用于將方法設(shè)置為調(diào)度任務(wù),下面這篇文章主要給大家介紹了關(guān)于Spring中@Scheduled功能的使用方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • SpringBoot使用RESTful接口詳解

    SpringBoot使用RESTful接口詳解

    RESTful是一種web軟件風格,它不是標準也不是協(xié)議,它不一定要采用,只是一種風格,它倡導的是一個資源定位(url)及資源操作的風格,這篇文章主要介紹了SpringBoot使用RESTful接口
    2022-10-10
  • Java框架MyBatis接口編程過程解析

    Java框架MyBatis接口編程過程解析

    這篇文章主要介紹了Java框架MyBatis接口編程過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java控制臺輸入數(shù)組并逆序輸出的方法實例

    Java控制臺輸入數(shù)組并逆序輸出的方法實例

    這篇文章主要介紹了Java手動輸入數(shù)組并逆向輸出的方法實例,需要的朋友可以參考下。
    2017-08-08
  • Java應(yīng)用啟動停止重啟Shell腳本模板server.sh

    Java應(yīng)用啟動停止重啟Shell腳本模板server.sh

    這篇文章主要為大家介紹了Java應(yīng)用啟動、停止、重啟Shell腳本模板server.sh,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • SpringBoot項目如何訪問jsp頁面的示例代碼

    SpringBoot項目如何訪問jsp頁面的示例代碼

    本篇文章主要介紹了SpringBoot項目如何訪問jsp頁面的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • java8 toMap問題(key重復(fù)如何解決)

    java8 toMap問題(key重復(fù)如何解決)

    這篇文章主要介紹了java8 toMap問題(key重復(fù)如何解決),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評論