JAVA在图片上设置水印图片(源码+注释详解)
【摘要】 JAVA在图片上设置水印图片(源码+注释详解)
package suiyin;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author yeqv
* @program A2
* @Classname Timg
* @Date 2022/1/22 15:51
* @Email w16638771062@163.com
*/
public class Timg {
public static void main(String[] args) {
//源图片路径
String st1 = "C:\\Users\\w1663\\Pictures\\Camera Roll\\img.png";
//水印图片路径
String st2 = "C:\\Users\\w1663\\Pictures\\Camera Roll\\sy.png";
//目标图片路径
String st3 = "C:\\Users\\w1663\\Pictures\\Camera Roll\\img4.png";
//水印图片旋转度
Integer xz = 90;
timg(st1, st2, st3, xz);
}
public static void timg(String st1, String st2, String st3, Integer xz) {
try {
//读取源图片信息
var m = ImageIO.read(new File(st1));
//创建画布
BufferedImage img = new BufferedImage(m.getWidth(), m.getHeight(), BufferedImage.TYPE_INT_ARGB);
//创建画笔
var g = img.createGraphics();
//将源图片信息画入画布
g.drawImage(m, 0, 0, m.getWidth(), m.getHeight(), null);
//设置对线段的锯齿状边缘处理
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
//新建图标对象读取水印图片
ImageIcon imageIcon = new ImageIcon(st2);
//获取图标的图片
Image image = imageIcon.getImage();
//设置图标的透明度
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.5f));
//设置图标位置
int x = img.getWidth() - image.getWidth(null) - 10;
int y = img.getHeight() - 10;
//判断旋转角度是否为空进行旋转
if (xz != null) {
g.rotate(Math.toDegrees(xz), img.getWidth() - image.getWidth(null) / 2 - 10, img.getHeight() - image.getHeight(null) / 2 - 10);
}
//将图标画入画布中
g.drawImage(image, x, y - image.getHeight(null), null);
//将图标和源图片结合
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
//清空画笔
g.dispose();
//建立写入流目标图片对象
FileOutputStream out = new FileOutputStream(st3);
//将画布信息传入文件中
ImageIO.write(img, "png", out);
} catch (IOException e) {
e.printStackTrace();
}
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)