1. /**
  2. * 把图片印刷到图片上
  3. *
  4. * @param pressImg --
  5. * 水印文件
  6. * @param targetinp --
  7. * 目标文件
  8. * @param x
  9. * --x坐标
  10. * @param y
  11. * --y坐标
  12. */
  13. public static File pressImage(File pressImg, InputStream targetinp,String format,
  14. int x, int y) {
  15. File file = null;
  16. try {
  17. //目标文件
  18. Image src = ImageIO.read(targetinp);
  19. int wideth = src.getWidth(null);
  20. int height = src.getHeight(null);
  21. BufferedImage image = new BufferedImage(wideth, height,
  22. BufferedImage.TYPE_INT_RGB);
  23. Graphics g = image.createGraphics();
  24. g.drawImage(src, 0, 0, wideth, height, null);
  25. //水印文件
  26. Image src_biao = ImageIO.read(pressImg);
  27. int wideth_biao = src_biao.getWidth(null);
  28. int height_biao = src_biao.getHeight(null);
  29. g.drawImage(src_biao, (wideth - wideth_biao),
  30. (height - height_biao)-40 , wideth_biao, height_biao, null);
  31. //水印文件结束
  32. g.dispose();
  33. ByteArrayOutputStream os = new ByteArrayOutputStream();
  34. ImageIO.write(image,format,os);
  35. byte [] bytes = os.toByteArray();
  36. BufferedOutputStream bos = null;
  37. FileOutputStream fos = null;
  38. file = new File("temp");
  39. fos = new FileOutputStream(file);
  40. bos = new BufferedOutputStream(fos);
  41. bos.write(bytes);
  42. bos.close();
  43. fos.close();
  44. os.close();
  45. } catch (Exception e) {
  46. e.printStackTrace();
  47. }
  48. return file;
  49. }


以上工具代码

无论压缩 水印   都是差不多用Image.read  
在spring muitpartfile 读取传入的file ,出现 can't read input file , 由于传入file 引起的问题
改为 inputstream即可
不过最好使用InputStream读


ps :


ImageIO.read(targetinp);

ImageIO的read 静态方法 可以传入 url , inputstream , file 多个重载方法




java web 打水印的更多相关文章

  1. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

  2. Java Web应用软件保护方法

    1 代码混淆概述目前针对Java源文件方法主要有以下几种方法:本地编译技术.数字水印技术.ClassLoader加密技术以及代码混淆技术.Java本地编译是指将Java应用程序编译成本地应用程序,如W ...

  3. 高效 Java Web 开发框架 JessMA v3.5.1

    JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...

  4. 高效 Java Web 开发框架 JessMA v3.4.1

    JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...

  5. java web 之客户关系管理系统

    这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...

  6. Java Web中的中文编码

    Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...

  7. java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化

    一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...

  8. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  9. JAVA WEB WITH IDEA

    本文主要介绍使用IDEA开发环境,创建JAVA WEB 工程,并介绍war包的制作过程. 1 创建MAVEN工程

随机推荐

  1. [转]MSSQL多列取最大或者最小值

    本文转自:http://blog.csdn.net/wufeng4552/article/details/4681510 /* lvl1 lvl2 lvl3 lvl4 lvl 4 3 4 1 3 2 ...

  2. 公司机器(线上机器)启动ftp任务的命令

    这个命令: /usr/local/proftp/sbin/proftpd 注意要在root账户,并且kill掉原来的同名进程.

  3. shader 变体variants

    https://blogs.unity3d.com/cn/2018/05/14/stripping-scriptable-shader-variants/ variants涉及的是build时间和da ...

  4. Axios使用文档总结

    vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios.Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 一.安装 ...

  5. Servlet拦截静态图片的解决方案

    一.现象 建立一个使用Freemarker的Web Project程序. Product.ftl中的代码为: <!DOCTYPE html PUBLIC "-//W3C//DTDHTM ...

  6. jstl表达式引用文件

    <script type="text/javascript" src="<c:url value="/resources/js/common/jqu ...

  7. ASPCMS不能上传2M以上大文件修改!

    \admin_aspcms\editor\upload.asp修改80行左右maxattachsize=xxxxxxxx'最大上传大小,默认是2M前提是IIS上传大小已修 其他有关IIS方面的修改: ...

  8. 复制VirtualBox中的虚拟机

    假设简单的复制虚拟机是行不通的.复制过程须要一个小技巧,复制出来的VDI文件无法在虚拟介质管理器中注冊.由于每一个VDI文件都有一个唯一的uuid.而VirtualBox不同意注冊反复的uuid. 为 ...

  9. mysql创建用户、授权,revoke

     use mysql;set password for root =password('haowumz');select host,user,password from user ;show gran ...

  10. 关于苹果开发证书失效的解决方式(2016年2月14日Failed to locate or generate matching signing assets)

    前言: 从2月14日開始,上传程序的同学可能会遇到提示上传失败的提示. 而且打开自己的钥匙串,发现所有的证书所有都显示此证书签发者无效. Failed to locate or generate ma ...