国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java圖片添加水印實例代碼分享

2019-11-26 14:42:54
字體:
來源:轉載
供稿:網友

本文為大家介紹了java圖片添加水印實例代碼,java實現水印還是非常方便的,水印可以是圖片或者文字,具體內容如下

package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream;  import javax.imageio.ImageIO; import javax.swing.ImageIcon;  import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageDecoder; import com.sun.image.codec.jpeg.JPEGImageEncoder;  /**  * 圖片水印  * @blog http://sjsky.iteye.com  * @author Michael  */ public class ImageMarkLogoByIcon {   /**   * @param args   */  public static void main(String[] args) {   String srcImgPath = "d:/test/michael/myblog_01.png";   String iconPath = "d:/test/michael/blog_logo.png";   String targerPath = "d:/test/michael/img_mark_icon.jpg";   String targerPath2 = "d:/test/michael/img_mark_icon_rotate.jpg";   // 給圖片添加水印   ImageMarkLogoByIcon.markImageByIcon(iconPath, srcImgPath, targerPath);   // 給圖片添加水印,水印旋轉-45   ImageMarkLogoByIcon.markImageByIcon(iconPath, srcImgPath, targerPath2,     -45);   }   /**   * 給圖片添加水印   * @param iconPath 水印圖片路徑   * @param srcImgPath 源圖片路徑   * @param targerPath 目標圖片路徑   */  public static void markImageByIcon(String iconPath, String srcImgPath,    String targerPath) {   markImageByIcon(iconPath, srcImgPath, targerPath, null);  }   /**   * 給圖片添加水印、可設置水印圖片旋轉角度   * @param iconPath 水印圖片路徑   * @param srcImgPath 源圖片路徑   * @param targerPath 目標圖片路徑   * @param degree 水印圖片旋轉角度   */  public static void markImageByIcon(String iconPath, String srcImgPath,    String targerPath, Integer degree) {   OutputStream os = null;   try {    Image srcImg = ImageIO.read(new File(srcImgPath));     BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),      srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);     // 得到畫筆對象    // Graphics g= buffImg.getGraphics();    Graphics2D g = buffImg.createGraphics();     // 設置對線段的鋸齒狀邊緣處理    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,      RenderingHints.VALUE_INTERPOLATION_BILINEAR);     g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg      .getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);     if (null != degree) {     // 設置水印旋轉     g.rotate(Math.toRadians(degree),       (double) buffImg.getWidth() / 2, (double) buffImg         .getHeight() / 2);    }     // 水印圖象的路徑 水印一般為gif或者png的,這樣可設置透明度    ImageIcon imgIcon = new ImageIcon(iconPath);     // 得到Image對象。    Image img = imgIcon.getImage();     float alpha = 0.5f; // 透明度    g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,      alpha));     // 表示水印圖片的位置    g.drawImage(img, 150, 300, null);     g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));     g.dispose();     os = new FileOutputStream(targerPath);     // 生成圖片    ImageIO.write(buffImg, "JPG", os);     System.out.println("圖片完成添加Icon印章。。。。。。");   } catch (Exception e) {    e.printStackTrace();   } finally {    try {     if (null != os)      os.close();    } catch (Exception e) {     e.printStackTrace();    }   }  } } 

再為大家分享一例:

import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import javax.imageio.ImageIO;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder; public final class ImageUtils { public ImageUtils() {  }  /**  * public final static String getPressImgPath() { return ApplicationContext  * .getRealPath("/template/data/util/shuiyin.gif"); }  */  /**  * 把圖片印刷到圖片上  *   * @param pressImg --  *   水印文件  * @param targetImg --  *   目標文件  * @param x  *   --x坐標  * @param y  *   --y坐標  */ public final static void pressImage(String pressImg, String targetImg,   int x, int y) {  try {   //目標文件   File _file = new File(targetImg);   Image src = ImageIO.read(_file);   int wideth = src.getWidth(null);   int height = src.getHeight(null);   BufferedImage image = new BufferedImage(wideth, height,     BufferedImage.TYPE_INT_RGB);   Graphics g = image.createGraphics();   g.drawImage(src, 0, 0, wideth, height, null);    //水印文件   File _filebiao = new File(pressImg);   Image src_biao = ImageIO.read(_filebiao);   int wideth_biao = src_biao.getWidth(null);   int height_biao = src_biao.getHeight(null);   g.drawImage(src_biao, (wideth - wideth_biao) / 2,     (height - height_biao) / 2, wideth_biao, height_biao, null);   //水印文件結束   g.dispose();   FileOutputStream out = new FileOutputStream(targetImg);   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);   encoder.encode(image);   out.close();  } catch (Exception e) {   e.printStackTrace();  } }  /**  * 打印文字水印圖片  *   * @param pressText  *   --文字  * @param targetImg --  *   目標圖片  * @param fontName --  *   字體名  * @param fontStyle --  *   字體樣式  * @param color --  *   字體顏色  * @param fontSize --  *   字體大小  * @param x --  *   偏移量  * @param y  */  public static void pressText(String pressText, String targetImg,   String fontName, int fontStyle, int color, int fontSize, int x,   int y) {  try {   File _file = new File(targetImg);   Image src = ImageIO.read(_file);   int wideth = src.getWidth(null);   int height = src.getHeight(null);   BufferedImage image = new BufferedImage(wideth, height,     BufferedImage.TYPE_INT_RGB);   Graphics g = image.createGraphics();   g.drawImage(src, 0, 0, wideth, height, null);       g.setColor(Color.RED);   g.setFont(new Font(fontName, fontStyle, fontSize));    g.drawString(pressText, wideth - fontSize - x, height - fontSize     / 2 - y);   g.dispose();   FileOutputStream out = new FileOutputStream(targetImg);   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);   encoder.encode(image);   out.close();  } catch (Exception e) {   System.out.println(e);  } }  public static void main(String[] args) {  pressImage("F:/logo.png",   "F:/123.jpg", 0, 0); }}

希望本文所述對大家用java語言實現圖片添加水印有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新营市| 昭平县| 邻水| 黎川县| 庄河市| 象州县| 怀集县| 繁峙县| 华阴市| 高安市| 吉木乃县| 江都市| 贵定县| 陆良县| 萨迦县| 锡林郭勒盟| 东丰县| 巴林右旗| 汝阳县| 鹤山市| 兴义市| 嵩明县| 闽清县| 两当县| 东兰县| 梧州市| 绥中县| 开平市| 合水县| 西畴县| 肥东县| 西林县| 东乡族自治县| 凤山县| 通城县| 龙门县| 石柱| 寿光市| 探索| 江都市| 全椒县|