package com.cw.utils;
 import java.awt.Color;
 import java.awt.Font;
 import java.awt.Graphics2D;
 import java.awt.Image;
 import java.awt.font.TextAttribute;
 import java.awt.image.BufferedImage;
 import java.io.FileOutputStream;
 import java.text.AttributedCharacterIterator;
 import java.text.AttributedString; import javax.swing.ImageIcon;
 import com.sun.image.codec.jpeg.JPEGCodec;
 import com.sun.image.codec.jpeg.JPEGEncodeParam;
 import com.sun.image.codec.jpeg.JPEGImageEncoder; public class d {
 public static void main(String[] a) {
    d.createMark("c://aa.jpg", "c://bb.jpg", "djms179234", null, 1, "", 30);
    // System.out.println(d.createMark("e8.jpg","e81.jpg","",null,
    // 1,"",16));
 } /**
 * 
 * @param souchFilePath:源图片路径
 * @param targetFilePath:生成后的目标图片路径
 * @param markContent:要加的文字
 * @param markContentColor:文字颜色
 * @param qualNum:质量数字
 * @param fontType:字体类型
 * @param fontSize:字体大小
 * @return
 */
 public static void createMark(String souchFilePath, String targetFilePath,
     String markContent, Color markContentColor, float qualNum,
     String fontType, int fontSize) {
   
    markContentColor = Color.red;
    ImageIcon imgIcon = new ImageIcon(souchFilePath);
    Image theImg = imgIcon.getImage();
    // Image可以获得 输入图片的信息
    int width = theImg.getWidth(null);
    int height = theImg.getHeight(null);    // 800 800 为画出图片的大小
    BufferedImage bimage = new BufferedImage(width, height,
      BufferedImage.TYPE_INT_RGB);
    // 2d 画笔
    Graphics2D g = bimage.createGraphics();
    g.setColor(markContentColor);
    g.setBackground(Color.white);    // 画出图片-----------------------------------
    g.drawImage(theImg, 0, 0, null);
    // 画出图片-----------------------------------    // --------对要显示的文字进行处理--------------
    AttributedString ats = new AttributedString(markContent);
    Font f = new Font(fontType, Font.BOLD, fontSize);
    ats.addAttribute(TextAttribute.FONT, f, 0, markContent.length());
    AttributedCharacterIterator iter = ats.getIterator();
    // ----------------------    g.drawString(iter, width-200,
      height - 30);
    // 添加水印的文字和设置水印文字出现的内容 ----位置
    g.dispose();// 画笔结束
    try {
     // 输出 文件 到指定的路径
     FileOutputStream out = new FileOutputStream(targetFilePath);
     JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);     JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
     param.setQuality(qualNum, true);
     encoder.encode(bimage, param);
     out.close();
    } catch (Exception e) {
     e.printStackTrace();
    }
 }
 }