1. 程式人生 > >java 圖片新增水印程式碼

java 圖片新增水印程式碼

  1. package michael.io.image;   
  2. import java.awt.AlphaComposite;   
  3. import java.awt.Graphics2D;   
  4. import java.awt.Image;   
  5. import java.awt.RenderingHints;   
  6. import java.awt.image.BufferedImage;   
  7. import java.io.File;   
  8. import java.io.FileInputStream;   
  9. import java.io.FileOutputStream;   
  10. import java.io.InputStream;   
  11. import java.io.OutputStream;   
  12. import javax.imageio.ImageIO;   
  13. import javax.swing.ImageIcon;   
  14. import com.sun.image.codec.jpeg.JPEGCodec;   
  15. import com.sun.image.codec.jpeg.JPEGImageDecoder;   
  16. import com.sun.image.codec.jpeg.JPEGImageEncoder;   
  17. /**  
  18.  * 圖片水印 
     
  19.  * @blog http://sjsky.iteye.com  
  20.  * @author Michael  
  21.  */
  22. publicclass ImageMarkLogoByIcon {   
  23. /**  
  24.      * @param args  
  25.      */
  26. publicstaticvoid main(String[] args) {   
  27.         String srcImgPath = "d:/test/michael/myblog_01.png";   
  28.         String iconPath = "d:/test/michael/blog_logo.png";   
  29.         String targerPath = 
    "d:/test/michael/img_mark_icon.jpg";   
  30.         String targerPath2 = "d:/test/michael/img_mark_icon_rotate.jpg";   
  31. // 給圖片新增水印 
  32.         ImageMarkLogoByIcon.markImageByIcon(iconPath, srcImgPath, targerPath);   
  33. // 給圖片新增水印,水印旋轉-45 
  34.         ImageMarkLogoByIcon.markImageByIcon(iconPath, srcImgPath, targerPath2,   
  35.                 -45);   
  36.     }   
  37. /**  
  38.      * 給圖片新增水印  
  39.      * @param iconPath 水印圖片路徑  
  40.      * @param srcImgPath 源圖片路徑  
  41.      * @param targerPath 目標圖片路徑  
  42.      */
  43. publicstaticvoid markImageByIcon(String iconPath, String srcImgPath,   
  44.             String targerPath) {   
  45.         markImageByIcon(iconPath, srcImgPath, targerPath, null);   
  46.     }   
  47. /**  
  48.      * 給圖片新增水印、可設定水印圖片旋轉角度  
  49.      * @param iconPath 水印圖片路徑  
  50.      * @param srcImgPath 源圖片路徑  
  51.      * @param targerPath 目標圖片路徑  
  52.      * @param degree 水印圖片旋轉角度  
  53.      */
  54. publicstaticvoid markImageByIcon(String iconPath, String srcImgPath,   
  55.             String targerPath, Integer degree) {   
  56.         OutputStream os = null;   
  57. try {   
  58.             Image srcImg = ImageIO.read(new File(srcImgPath));   
  59.             BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),   
  60.                     srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);   
  61. // 得到畫筆物件 
  62. // Graphics g= buffImg.getGraphics(); 
  63.             Graphics2D g = buffImg.createGraphics();   
  64. // 設定對線段的鋸齒狀邊緣處理 
  65.             g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,   
  66.                     RenderingHints.VALUE_INTERPOLATION_BILINEAR);   
  67.             g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg   
  68.                     .getHeight(null), Image.SCALE_SMOOTH), 00null);   
  69. if (null != degree) {   
  70. // 設定水印旋轉 
  71.                 g.rotate(Math.toRadians(degree),   
  72.                         (double) buffImg.getWidth() / 2, (double) buffImg   
  73.                                 .getHeight() / 2);   
  74.             }   
  75. // 水印圖象的路徑 水印一般為gif或者png的,這樣可設定透明度 
  76.             ImageIcon imgIcon = new ImageIcon(iconPath);   
  77. // 得到Image物件。 
  78.             Image img = imgIcon.getImage();   
  79. float alpha = 0.5f; // 透明度 
  80.             g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,   
  81.                     alpha));   
  82. // 表示水印圖片的位置 
  83.             g.drawImage(img, 150300null);   
  84.             g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));   
  85.             g.dispose();   
  86.             os = new FileOutputStream(targerPath);   
  87. // 生成圖片 
  88.             ImageIO.write(buffImg, "JPG", os);   
  89.             System.out.println("圖片完成新增Icon印章。。。。。。");   
  90.         } catch (Exception e) {   
  91.             e.printStackTrace();   
  92.         } finally {   
  93. try {   
  94. if (null != os)   
  95.                     os.close();   
  96.             } catch (Exception e) {   
  97.                 e.printStackTrace();   
  98.             }   
  99.         }   
  100.     }   
  101. }  

相關推薦

java 圖片新增水印程式碼

package michael.io.image;    import java.awt.AlphaComposite;    import java.awt.Graphics2D;    i

java工具類——圖片新增水印

import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image

JAVA圖片新增水印,可設定大小、位置、透明度

/******************************************************************************* * Description: 圖片水印工具類 * * @author xcwc1995 * @versi

Java圖片新增水印

  package com.image import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.aw

java圖片新增水印工具類

      給圖片新增水印這個功能以前做專案的時候遇到過 但是後來好久不用今天突然想起來  就隨筆記錄一下吧  隨便在記錄一下自己當初踩的坑 package Img; import java.awt.Color; import jav

java實現給圖片新增水印、透明度

package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.a

Java寫的為圖片新增水印的軟體(含原始碼)

介面如下:   效果圖如下:   拖拉操作如下: 支援功能: 1、可設定水印的字型(字型名字、樣式、大小) 2、可設定水印的位置(暫時只支援6個位置) 3、可設定水印的透明度,同時支援縮放 4、支援預覽(按Esc鍵退出) 5、支援批量新增水印 6、支援拖拉:拖拉進入主介

java 圖片水印,設置透明度。說明非常具體

end ace ins com tar .net 對象 nal 圖片路徑 package com.yidao.common; import java.awt.AlphaComposite; import java.awt.Graphics2D; import

Python之給圖片新增水印

1.安裝Pillow pip install Pillow 2.具體程式碼如下 from PIL import Image, ImageDraw, ImageFont # 指定要使用的字型和大小;黑體,24號 font = ImageFont.truetype('heit

[Xcode10 實際操作]九、實用進階-(16)給圖片新增水印效果

本文將演示如何擷取螢幕畫面,並將擷取圖片,存入系統相簿。 在專案資料夾【DemoApp】上點選滑鼠右鍵 ->【New File】建立一個擴充套件檔案->模板選擇視窗:【Swift File】->【Next】 ->【Save As】:ExtensionUIImage.swift-&

【前端】利用Canvas給圖片新增水印,支援拖拽、編輯、縮放與刪除

利用Canvas給圖片新增水印,支援拖拽、編輯、縮放與刪除。 難點一: 如何在偽元素after“刪除按鈕“上新增點選事件。 通過滑鼠點選位置event中offsetX屬性獲得其偏離元素距離,與元素寬度做比較。若大於元素寬度,則點選在了偽元素上,否則點選到正常元

對於處理上傳圖片新增水印的簡單操作

圖片上傳之後的流程如下圖  首先你的新增一個引用System.Drawing.dll  前端只要有個圖片上傳功能就可以了 後臺程式碼也簡單,只需將圖片存起來,再呼叫 後言:水印原理很簡單,沒接觸過得可以自己去試一試,本部落格有不足之處,請大家多多包涵,謝謝

上傳圖片的縮放和圖片新增水印

此文件為:記錄asp.net後臺上傳圖片時,根據需要對圖片的處理功能。可以對圖片進行任意比例的縮放和在圖片上新增任意水印(文字水印,圖片水印,文字+圖片)     protected void Up_load_btn_Click(object sender, EventAr

Swift 給圖片新增水印

要給圖片新增一個水印感性的想想其實就是在圖片上面繪製文字,一般有如下幾步:第一要獲取到畫布;第二要在畫布中繪製文字;第三獲取到新的圖片。不囉嗦了看程式碼具體和註釋 這裡我是給UIImage這個類添加了

圖片新增水印【png格式新增水印後背景保持透明】

package com.solex.waterPrint; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; i

參考phpcms所寫的圖片新增水印功能

<?php class water{ //待新增圖片資源,水印資源 public $src_im,$water_im; //水印位置 public $posW,$posH; //待加水印圖片寬高 private $fileW,$fileH; //水印

iOS--給圖片新增水印

在iOS開發的過程中,有時需要給圖片新增水印,但UIImage並沒有提供直接的方法,下面我們給UIImage新增一個catgory,增加一個方法實現水印新增 使用方法:通過UIImage 直接呼叫,傳入的引數分別是:要新增水印的圖片,水印新增位置,一般是根據展示圖片的UIImageView確定,水印內容。

Java實現給圖片新增文字水印-原始碼分享

直接上原始碼: 單張瓦片新增單個文字水印、可設定水印文字內容,字型,顏色,旋轉角度,透明度 controller層 import org.springframework.web.bind.annotation.GetMapping; import org.springframewo

java圖片新增文字水印,以及docker容器新增中文字型支援

發現雖然簡單,但是水印內容通過編碼拼接在圖片地址後面,每次訪問都要加上,如果要儲存下來還需要自己存第二遍有水印的圖。可是我們並不需要沒有水印的原圖,於是決定通過程式碼新增,更自由。 程式碼如下: /** * 新增文字水印 * @param inpu

Java 在PDF中新增水印——文字/圖片水印

水印是一種十分常用的防偽手段,常用於各種文件、資料等。常見的水印,包括文字型別的水印、圖片或logo型別的水印。以下Java示例,將分別使用insertTextWatermark(PdfPageBase page, String watermark)方法以及page.SetBackgroundImage(St