首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java 给图片下水印

2012-12-27 
Java 给图片上水印package com.able.demoimport java.awt.Colorimport java.awt.Fontimport java.awt.G

Java 给图片上水印

package com.able.demo;

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 class ImageUtils {

?/**
? * 给图片上水印
? * @param args
? */
?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();
?System.out.println("水印图片生成成功!");
?} 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();
?System.out.println("水印图片生成成功!");
?} catch (Exception e) {
?System.out.println(e);
?}
?}
?public static void main(String[] args) {
??pressImage("E:/shuiyin.bmp", "E:/mubiaotupian.jpg", 110, 120);
?}

}

热点排行