Java實(shí)現(xiàn)給網(wǎng)站上傳圖片蓋章的方法
本文實(shí)例講述了Java實(shí)現(xiàn)給網(wǎng)站上傳圖片蓋章的方法。分享給大家供大家參考。具體如下:
最近無聊,上了一會(huì)校友錄,覺的校友錄的圖片都會(huì)加入一個(gè)章,呵呵,自己也就做了一個(gè),不過只適合jpg格式。發(fā)出來給大家研究研究。歡迎討論!
很老的代碼了
/************************************************ * <p>java對(duì)圖片的操作(只能使用jpg)</p> * 對(duì)圖片的簽章<br> * 對(duì)圖片的縮圖<br> * <p>Title:java對(duì)圖片的操作(只能使用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)); //得到輸入的編碼器,將文件流進(jìn)行jpg格式編碼 JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn); //得到編碼后的圖片對(duì)象 BufferedImage image = decoder.decodeAsBufferedImage(); Graphics g = image.getGraphics(); try { InputStream imageIn2 = null; imageIn2 = new FileInputStream(new File(toimagepth)); //得到輸入的編碼器,將文件流進(jìn)行jpg格式編碼 JPEGImageDecoder decoder2 = JPEGCodec .createJPEGDecoder(imageIn2); //得到編碼后的圖片對(duì)象 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) { //打開文件失敗,表示章圖片不存在,這時(shí)候直接加蓋文件章(簽名) 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) { // 自動(dòng)生成 catch 塊 e.printStackTrace(); } catch (ImageFormatException e) { // 自動(dòng)生成 catch 塊 e.printStackTrace(); } catch (IOException e) { // 自動(dòng)生成 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) { // 自動(dòng)生成 catch 塊 e.printStackTrace(); } } }
希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。
- JSP上傳圖片產(chǎn)生 java.io.IOException: Stream closed異常解決方法
- java實(shí)現(xiàn)上傳圖片進(jìn)行切割的方法
- java異步上傳圖片示例
- spring(java,js,html) 截圖上傳圖片實(shí)例詳解
- Java中上傳圖片壓縮處理的方法示例
- Java Servlet上傳圖片到指定文件夾并顯示圖片
- React+ajax+java實(shí)現(xiàn)上傳圖片并預(yù)覽功能
- java webApp異步上傳圖片實(shí)現(xiàn)代碼
- java實(shí)現(xiàn)上傳圖片并壓縮圖片大小功能
- 簡單實(shí)現(xiàn)java上傳圖片文件功能
相關(guān)文章
實(shí)例解析Java程序中正則表達(dá)式的貪婪模式匹配
貪婪模式又叫最大匹配,X?、X*、X+、X{n,}都是最大匹配,例如你要用“<.+>”去匹配“a<tr>aava </tr>abb”,也許你所期待的結(jié)果是想匹配“<tr>”,但是實(shí)際結(jié)果卻會(huì)匹配到“<tr>aava </tr>”,下面我們就來看具體看一下貪婪模式的使用.2016-05-05Spring?注入集合實(shí)現(xiàn)過程示例詳解
這篇文章主要為大家介紹了Spring?注入集合實(shí)現(xiàn)過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Java控制臺(tái)輸入數(shù)組并逆序輸出的方法實(shí)例
這篇文章主要介紹了Java手動(dòng)輸入數(shù)組并逆向輸出的方法實(shí)例,需要的朋友可以參考下。2017-08-08Java應(yīng)用啟動(dòng)停止重啟Shell腳本模板server.sh
這篇文章主要為大家介紹了Java應(yīng)用啟動(dòng)、停止、重啟Shell腳本模板server.sh,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08SpringBoot項(xiàng)目如何訪問jsp頁面的示例代碼
本篇文章主要介紹了SpringBoot項(xiàng)目如何訪問jsp頁面的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10