我喜欢先有思路再说实现,大家都知道java可以画图的,但效率不是很高,我们又不用它写ps软件,哈哈啊哈。。。。。
转载留下出处哈:http://blog.csdn.net//article/details/44758297
首先。涉及到文件就要用到文件操作,但我们这是操作图片
1、我们首先需要一个容器来存放图片ps:图片原来在磁盘(File)----》内存(image)
2、我们要在原来的图片上加水印,就相当于要在纸上画画。。。所以我们的画纸应该是原图的一的副本,我们我们需要得到副本并用容器容乃他,
3、画画需要画笔对吧,我们要得到画副本的笔,当然笔肯定有粗细。。。参数设置。。
4、现在就开始画了。。。首先的找位置。。。我们的图片就像桌面是二维图形,就用起始坐标,还是按部就班就从(0,0)开始呢
5、然后万一我们想斜着画了呢,java有旋转画布的方法
6、开始画画了。。。。给定位置。。。给定内容。。下笔了。。。(一阵乱糊)
7、花完了。。是不是就要收拾现场了。。。。收拾好笔,将内存的image输出到磁盘文件。。。。
上代码
package com.funi.test;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
/*******************************************************************************
* Description: 图片水印工具类
* @author
* @version 1.0
*/
public class ImageRemarkUtil {
// 水印透明度
private static float alpha = 0.5f;
// 水印横向位置
private static int positionWidth = 150;
// 水印纵向位置
private static int positionHeight = 300;
// 水印文字字体
private static Font font = new Font("宋体", Fon