@Override

public OutputStream watermark1(String ossURL, String logoOsskey, HttpServletResponse response) {

lock.lock();

OutputStream os = null;

InputStream imageStream=null;

//水印

String logoPath = ossService.getOssURL(logoOsskey,bucket);

//原图ossURL

try {

os=response.getOutputStream();

imageStream = getImageStream(ossURL);

Image image2 = ImageIO.read(imageStream);

//获取原图信息

int width = image2.getWidth(null);

int height = image2.getHeight(null);

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);

Graphics2D g = bufferedImage.createGraphics();

g.drawImage(image2, 0, 0, width, height, null);

// //设置多个图片水印

InputStream logo = getImageStream(logoPath);

Image imageLogo = ImageIO.read(logo);

int logoWidth = imageLogo.getWidth(null);

int logoHeight = imageLogo.getHeight(null);

//设置透明度,ALPHA为接口中自定义的值透明度 0.3F

g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, ALPHA));

//完成图片旋转30

g.rotate(Math.toRadians(0), bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);

int x = -width / 2;

int y = -height / 2;

while (x < width * 1.5) {

y = -height / 2;

while (y < height * 1.5) {

g.drawImage(imageLogo, x, y, null);

y += logoHeight + 200;

}

x += logoHeight + 300;

}

g.dispose();

Thumbnails.Builder thumbnail = Thumbnails.of(bufferedImage);

thumbnail.size(x,y);

ImageIO.write(thumbnail.asBufferedImage(),"png",os);

//JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(os);

//en.encode(bufferedImage);

} catch (IOException e) {

e.printStackTrace();

} finally {

if (os != null) {

try {

os.flush();

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

if(imageStream!=null){

try {

imageStream.close();

}catch (IOException e){

e.printStackTrace();

}

}

}

lock.unlock();

return os;

}

java url 生成图片_JAVA 通过URL生成水印图相关推荐

  1. java url 协议_Java自定义URL协议

    Java提供了对URL协议进行扩展的能力,通过扩展用户可以自定义URL通信协议,JDK默认提供了对HTTP,FTP,JAR,FILE等的实现,而当需要自己定义通信协议的时候,就需要利用JDK提供的对U ...

  2. java.net.url 兼容_java.net.Url类的应用(网络编程)

    一.认识URL 类 URL 代表一个统一资源定位符,它是指向互联网"资源"的指针.资源可以是简单的文件或目录,也可以是更为复杂的对象的引用,例如对数据库或搜索引擎的查询. 简单的可 ...

  3. java echarts 生成图片_java如何在后台生成echarts图表?实际代码展示

    学习是一个永无止境的过程,关于java的学习更是如此.今天主要为大家介绍下,如何在java中后台生成echarts图表,并且为大家展示实际的操作流程. 首先说下它的适用情况:⑴.支持echart4.0 ...

  4. java 图形校验_java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...

  5. java url 缩略图_java根据url生成网页截图,缩略图 | 学步园

    public class ShotsPic extends JPanel { private static final long serialVersionUID = 1L; // 行分隔符 fina ...

  6. java 生成url_JAVA 通过URL生成水印图

    @Override public OutputStream watermark1(String ossURL, String logoOsskey, HttpServletResponse respo ...

  7. java 将html生成图片_java通过html生成pdf,支持css和图片以及横向打印

    项目当中通常会有生成pdf的需求,pdf的排版尤为重要!通过html生成,最为方便. 1. 依赖 工具使用freemarker模板进行数据渲染 org.freemarker freemarker 2. ...

  8. java echarts 生成图片_java后端生成echarts图片

    一.所需工具 1.phantomjs 2.EChartsConvert 二.Maven依赖 org.freemarker freemarker 2.3.28 org.apache.httpcompon ...

  9. java 下载url图片_java下载url图片链接

    1.从之前写的一篇中改写了代码,从远程的url链接中下载图片,并对各种浏览器的中文文件名进行展示 /** * 根据url路径下载图片 * @param filename 处理下载时显示设置好的中文名 ...

最新文章

  1. 【开发工具】学习记录 初学MATLAB
  2. Elasticsearch 教程--入门
  3. Spring Boot怎么样注册Servlet三大组件[Servlet、Filter、Listener]
  4. 遍历DataTable内存数据的三种方法性能对比
  5. 在.NetCore中使用Myrmec检测文件真实格式
  6. ionic 修改组件默认样式_开源Magpie:组件库详解
  7. mysql导出数据意义_11、mysql导出数据
  8. maven添加子工程_Maven建立父子项目和跨项目调用内容的步骤—佳佳小白
  9. 程序员面试HR你该看重什么?!
  10. Android学习笔记(四)——EditText简单登录页面设计
  11. 计算机拆装与维修技能综述,综述虚拟机在计算机硬件组装与维护教学中的应用...
  12. 送书丨超级畅销书《漫画算法》50 本免费送!
  13. DPDK性能优化技术汇总
  14. MapGis67读取点线区
  15. 硬件电路设计之与非门触发器74HC30和74HCT20
  16. windows下基于selenium保存网页为图片
  17. 华为路由器交换机配置命令
  18. Centos7中Docker安装Redis
  19. 从外网访问内网服务器
  20. 非常有用的生活小常识

热门文章

  1. android opencv 书籍,opencv android
  2. oracle常见表,ORACLE常见视图和表整理
  3. yolov5改进mark
  4. mxnet加载预训练
  5. python--numpy pad函数使用
  6. VS2015下使用websocketpp和asio构建websock服务器
  7. python stock query
  8. pytorch 模型下载,郑重推荐
  9. PyTorch中如何使用tensorboard可视化
  10. python 调用c++ 回调函数