程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java加水印效果:1加圖片2加文字

Java加水印效果:1加圖片2加文字

編輯:關於JAVA

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() {

     }

     /**
      * 把圖片印刷到圖片上
      *
      * @param pressImg --
      *            水印文件
      * @param targetImg --
      *            目標文件
      * @param x
      * @param 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 - x, height
                     - height_biao - y, 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);
             // String s="www.143zh.com";
             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("pressImg.jpg", "targetImg.jpg", 20, 20);
     }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved