留学之家留学DIY社区

首页 » 休闲频道 » 电脑网络 » 系统网络 » 用Java语言为图上片打上水印图片或是水文字
venkatmba - 2008-6-17 16:35:00
import java.awt.Color;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import java.awt.Font;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import java.awt.Graphics;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import java.awt.Image;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import java.awt.image.BufferedImage;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import java.io.File;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import java.io.FileOutputStream;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import javax.imageio.ImageIO;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import com.sun.image.codec.jpeg.JPEGCodec;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
import com.sun.image.codec.jpeg.JPEGImageEncoder;—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
public final class ImageUtils {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    public ImageUtils() {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    }—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    /**//*—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * public final static String getPressImgPath() { return ApplicationContext—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * .getRealPath("/template/data/util/shuiyin.gif"); }—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    */—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    /** *//**—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * 把图片印刷到图片上—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param pressImg --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            水印文件—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param targetImg --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            目标文件—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param x—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            --x坐标—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param y—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            --y坐标—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    */—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    public final static void pressImage(String pressImg, String targetImg,—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int x, int y) {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
        try {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            //目标文件—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            File _file = new File(targetImg);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            Image src = ImageIO.read(_file);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int wideth = src.getWidth(null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int height = src.getHeight(null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            BufferedImage image = new BufferedImage(wideth, height,—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
                    BufferedImage.TYPE_INT_RGB);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            Graphics g = image.createGraphics();—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.drawImage(src, 0, 0, wideth, height, null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            //水印文件—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            File _filebiao = new File(pressImg);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            Image src_biao = ImageIO.read(_filebiao);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int wideth_biao = src_biao.getWidth(null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int height_biao = src_biao.getHeight(null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
//            g.drawImage(src_biao, (wideth - wideth_biao) / 2,—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
//                        (height - height_biao) / 2, wideth_biao, height_biao, null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.drawImage(src_biao, (wideth - wideth_biao),—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
                        (height - height_biao), wideth_biao, height_biao, null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            //水印文件结束—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.dispose();—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            FileOutputStream out = new FileOutputStream(targetImg);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            encoder.encode(image);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            out.close();—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
        } catch (Exception e) {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            e.printStackTrace();—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
        }—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    }—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    /** *//**—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * 打印文字水印图片—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param pressText—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            --文字—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param targetImg --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            目标图片—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param fontName --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            字体名—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param fontStyle --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            字体样式—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param color --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            字体颜色—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param fontSize --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            字体大小—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param x --—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    *            偏移量—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    * @param y—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    */—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    public static void pressText(String pressText, String targetImg,—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            String fontName, int fontStyle, int color, int fontSize, int x,—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int y) {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
        try {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            File _file = new File(targetImg);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            Image src = ImageIO.read(_file);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int wideth = src.getWidth(null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            int height = src.getHeight(null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            BufferedImage image = new BufferedImage(wideth, height,—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
                    BufferedImage.TYPE_INT_RGB);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            Graphics g = image.createGraphics();—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.drawImage(src, 0, 0, wideth, height, null);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            // String s="www.liuxuehome.com";—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.setColor(Color.RED);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.setFont(new Font(fontName, fontStyle, fontSize));—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.drawString(pressText, wideth - fontSize - x, height - fontSize—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
                    / 2 - y);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            g.dispose();—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            FileOutputStream out = new FileOutputStream(targetImg);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            encoder.encode(image);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            out.close();—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
        } catch (Exception e) {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
            System.out.println(e);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
        }—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    }—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    public static void main(String[] args) {—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
        pressImage("E:\\temp\\bg.png", "E:\\temp\\6.JPG", 0, 0);—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
    }—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
}—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
—ÂAøÎÂuforum.pre-mbaclub.comÑä`0ÇÙ¨‚Ž
1
查看完整版本: 用Java语言为图上片打上水印图片或是水文字