首先:我们需要创建 水印图片.
1:打开ps,
2:创建先文件,宽高根据情况进行设置,要注意的点就是 需要把背景修改为透明
3: 点击左侧的 [T] 添加文字 可以设置,顶部的可以选择字体的样式 微软雅黑等等
3:如果水印需要是 倾斜可以 通过ctrl+t快捷键,或者 【编辑】---->[自由变换]
4: 设置透明度(在右侧,显示图层的 上面,有个透明度,进行调节)
5:【文件】-----》存储为web使用格式(会弹出一个框)
6:保存 。到这里 水印图片就只做完毕
效果图:
java 代码: 这个是网上找个,可以使用
///多个水印///
/** 水印透明度 */
private static float alpha = 0.5f;
/** 水印图片旋转角度 */
private static double degree = 0f;
private static int interval = 0;
/**
* 设置水印参数,不设置就使用默认值
*
* @param alpha
* 水印透明度
* @param degree
* 水印图片旋转角度 *
* @param interval
* 水印图片间隔
*/
public static void setImageMarkOptions(float alpha, int degree,int interval) {
if (alpha != 0.0f) {
ImageUtils.alpha = alpha;
}
if (degree != 0f) {
ImageUtils.degree = degree;
}
if (interval != 0f) {
ImageUtils.interval = interval;
}
}
/**
* 给图片添加水印图片
*
* @param waterImgPath
* 水印图片路径
* @param srcImgPath
* 源图片路径
* @param targerPath
* 目标图片路径
*/
public static void waterMarkByImg(String waterImgPath, String srcImgPath,String targerPath) throws Exception {
waterMarkByImg(waterImgPath, srcImgPath, targerPath, 0);
}
/**
* 给图片添加水印图片
*
* @param waterImgPath
* 水印图片路径
* @param srcImgPath
* 源图片路径
* @param targerPath
* 目标图片路径
*/
public static void waterMarkByImg(String waterImgPath, String srcImgPath) {
try {
//String targetFile = ImageUtils.getUrl(srcImgPath, "shuiyin_");
waterMarkByImg(waterImgPath, srcImgPath, srcImgPath, 0);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 给图片添加水印图片、可设置水印图片旋转角度
*
* @param waterImgPath
* 水印图片路径
* @param srcImgPath
* 源图片路径
* @param targerPath
* 目标图片路径
* @param degree
* 水印图片旋转角度
*/
public static void waterMarkByImg(String waterImgPath, String srcImgPath,
String targerPath, double degree) throws Exception {
OutputStream os = null;
try {
Image srcImg = ImageIO.read(new File(srcImgPath));
BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),
srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
// 1、得到画笔对象
Graphics2D g = buffImg.createGraphics();
// 2、设置对线段的锯齿状边缘处理
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg
.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);
// 3、设置水印旋转
if (0 != degree) {
g.rotate(Math.toRadians(degree),
(double) buffImg.getWidth() / 2,
(double) buffImg.getHeight() / 2);
}
// 4、水印图片的路径 水印图片一般为gif或者png的,这样可设置透明度
ImageIcon imgIcon = new ImageIcon(waterImgPath);
// 5、得到Image对象。
Image img = imgIcon.getImage();
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
alpha));
// 6、水印图片的位置
for (int height = interval + imgIcon.getIconHeight(); height < buffImg
.getHeight(); height = height +interval+ imgIcon.getIconHeight()) {
for (int weight = interval + imgIcon.getIconWidth(); weight < buffImg
.getWidth(); weight = weight +interval+ imgIcon.getIconWidth()) {
g.drawImage(img, weight - imgIcon.getIconWidth(), height
- imgIcon.getIconHeight(), null);
}
}
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
// 7、释放资源
g.dispose();
// 8、生成图片
os = new FileOutputStream(targerPath);
ImageIO.write(buffImg, "JPG", os);
//System.out.println("图片完成添加水印图片");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != os)
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
///多个水印
public static void main(String[] args) {
//markImageByMosaic("D:\\10.jpg","D:\\","11","jpg",15);
//最后一个参数是设置旋转
//markImageBySingleText("D:\\10.jpg","D:\\","测试使用","jpg",new Color(0,0,255),"中铁",null);
/*createMark("D:\\10.jpg", "D:\\水印2.jpg",
"测试使用", null, 1, "方正楷体简体", 30, 700, 300,
Color.GRAY); */
System.out.println("..添加水印图片开始...");
//watermarkPath 水印图片地址 uploadPath 上传成功后文件地址
//修改默认参数
ImageUtils.setImageMarkOptions(0.0f,0,20);
ImageUtils.waterMarkByImg("D:\\shuiyin.png", "D:\\身份.jpg","D:\\身份shuiyin.jpg");
System.out.println("..添加水印图片结束...");
}