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. synchronized 线程同步

    synchronized  通常用来形容一次方法的调用,调用一旦开始,调用者必须等到方法调用返回后,才能继续执行后续的操作. 1.demo package demo1; public class My ...

  2. Shell学习:if语句 if -z -n -f -eq -ne -lt

    if  条件then Commandelse Commandfi                              别忘了这个结尾 If语句忘了结尾fitest.sh: line 14: sy ...

  3. windows下mysql中文乱码, 配置解决方法

    内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内 ...

  4. TestNG 一、 概论

    一. 概论         TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用 ...

  5. 矩阵LU分解分块算法实现

    本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...

  6. java调用机器上的shell脚本

    java调用机器上的shell脚本,可以这样方便的通过shell脚本调用本机的C.C++等程序 Process process = null; Runtime runTime = Runtime.ge ...

  7. 如何使用angularjs实现按钮事件

    <!DOCTYPE html> <html ng-app="myApp"> <head> <title>angularjs-setV ...

  8. Linux 系统目录结构(转)

    登录系统后,在当前命令窗口下输入命令:  ls /  你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boo ...

  9. linux中的strip命令简介------给文件脱衣服

    1.去掉-g,等于程序做了--strip-debug2.strip程序,等于程序做了--strip-debug和--strip-symbol 作为一名Linux开发人员, 如果没有听说过strip命令 ...

  10. Mysql 中 trim 的用法

    需求:去掉contract字段值中的% update gsfrankfurt set contract = trim(both "%" from contract);