package com.zkj.report.controller;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class WatermarkExample {
public static void addWatermark(String inputImagePath) {
try {
File inputFile = new File(inputImagePath);
long totalSpace = inputFile.getTotalSpace();
System.out.println(totalSpace);
BufferedImage srcImg = ImageIO.read(inputFile);
//获取图片的宽
int srcImgWidth = srcImg.getWidth(null);
//获取图片的高
int srcImgHeight = srcImg.getHeight(null);
System.out.println("图片的宽:"+srcImgWidth);
System.out.println("图片的高:"+srcImgHeight);
//创建一个URL对象,获取网络图片的地址信息(网络图片)
// URL url = new URL("https://pngimg.com/distr/img/ukraine.png");
// //将URL对象输入流转化为图片对象 (url.openStream()方法,获得一个输入流)
// Image srcImg = ImageIO.read(url.openStream());
// //获取图片的宽
// int srcImgWidth = srcImg.getWidth(null);
// //获取图片的高
// int srcImgHeight = srcImg.getHeight(null);
// System.out.println("图片的宽:"+srcImgWidth);
// System.out.println("图片的高:"+srcImgHeight);
BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
// 加水印
//创建画笔
Graphics2D g = bufImg.createGraphics();
//绘制原始图片
g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
//-------------------------文字水印 start----------------------------
// //根据图片的背景设置水印颜色
// g.setColor(new Color(255,255,255,128));
// //设置字体 画笔字体样式为微软雅黑,加粗,文字大小为60pt
// g.setFont(new Font("微软雅黑", Font.BOLD, 60));
// String waterMarkContent="图片来源:https://image.baidu.com/";
// //设置水印的坐标(为原图片中间位置)
// int x=(srcImgWidth - getWatermarkLength(waterMarkContent, g)) / 2;
// int y=srcImgHeight / 2;
// //画出水印 第一个参数是水印内容,第二个参数是x轴坐标,第三个参数是y轴坐标
// g.drawString(waterMarkContent, x, y);
// g.dispose();
//-------------------------文字水印 end----------------------------
//-------------------------图片水印 start----------------------------
// 水印文件
String waterMarkImage="/Users/candy/Desktop/11.png";
Image srcWaterMark = ImageIO.read(new File(waterMarkImage));
//获取水印图片的宽度
int widthWaterMark= srcWaterMark.getWidth(null);
//获取水印图片的高度
int heightWaterMark = srcWaterMark.getHeight(null);
//设置 alpha 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.5f));
//绘制水印图片 坐标为中间位置
g.drawImage(srcWaterMark, (srcImgWidth - widthWaterMark) / 2,
(srcImgHeight - heightWaterMark) / 2, widthWaterMark, heightWaterMark, null);
// 水印文件结束
g.dispose();
//-------------------------图片水印 end----------------------------
//待存储的地址
String tarImgPath="/Users/candy/Desktop/jianxin.jpeg";
// 输出图片
FileOutputStream outImgStream = new FileOutputStream(tarImgPath);
ImageIO.write(bufImg, "png", outImgStream);
System.out.println("添加水印完成");
outImgStream.flush();
outImgStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String inputImagePath = "/Users/candy/Desktop/WechatIMG83.jpeg";
addWatermark(inputImagePath);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
report.zip (58个子文件)
report
pom.xml 3KB
src
test
java
com
zkj
report
ReportApplicationTests.java 215B
main
resources
mapper
PostMapper.xml 12KB
AuthorMapper.xml 10KB
application.properties 1KB
templates
static
java
com
zkj
report
test2Mapper
PostMapper.java 776B
controller
TestController.java 1KB
WatermarkExample.java 4KB
ReportApplication.java 319B
service
KvServiceImpl.java 1KB
KvService.java 175B
model
Post.java 1KB
ValueEntity.java 203B
Author.java 1KB
kvMapper
KvMapper.java 447B
testMapper
AuthorMapper.java 801B
util
Utils.java 1KB
config
KvDataSourceConfig.java 2KB
SecondaryDataSourceConfig.java 2KB
PrimaryDataSourceConfig.java 2KB
.idea
jarRepositories.xml 2KB
dataSources
ba8ce9a3-5a7b-40bb-97b7-4698fa8d9b3a.xml 52KB
a5eb6936-44d1-4799-ba2a-e1b9c952f26e.xml 3KB
a5eb6936-44d1-4799-ba2a-e1b9c952f26e
storage_v2
_src_
schema
performance_schema.kIw0nw.meta 76B
sys.zb4BAA.meta 61B
information_schema.FNRwLQ.meta 76B
mysql.osA4Bg.meta 63B
ba8ce9a3-5a7b-40bb-97b7-4698fa8d9b3a
storage_v2
_src_
schema
performance_schema.kIw0nw.meta 76B
sys.zb4BAA.meta 61B
information_schema.FNRwLQ.meta 76B
mysql.osA4Bg.meta 63B
dataSources.local.xml 2KB
uiDesigner.xml 9KB
workspace.xml 6KB
misc.xml 532B
dataSources.xml 893B
compiler.xml 755B
.gitignore 176B
encodings.xml 186B
MyBatisCodeHelperDatasource.xml 6KB
target
classes
mapper
PostMapper.xml 12KB
AuthorMapper.xml 10KB
application.properties 1KB
com
zkj
report
test2Mapper
PostMapper.class 1KB
controller
WatermarkExample.class 3KB
TestController.class 2KB
ReportApplication.class 735B
service
KvService.class 312B
KvServiceImpl.class 2KB
model
ValueEntity.class 2KB
Author.class 2KB
Post.class 3KB
kvMapper
KvMapper.class 685B
testMapper
AuthorMapper.class 1KB
util
Utils.class 954B
config
PrimaryDataSourceConfig.class 2KB
KvDataSourceConfig.class 2KB
SecondaryDataSourceConfig.class 2KB
generated-sources
annotations
共 58 条
- 1
资源评论
Mr、追风少年
- 粉丝: 24
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功