1. /**
    1. * 把图片印刷到图片上
    1. *
    1. * @param pressImg --
    1. * 水印文件
    1. * @param targetinp --
    1. * 目标文件
    1. * @param x
    1. * --x坐标
    1. * @param y
    1. * --y坐标
    1. */
    1. public static File pressImage(File pressImg, InputStream targetinp,String format,
    1. int x, int y) {
    1. File file = null;
    1. try {
    1. //目标文件
    1. Image src = ImageIO.read(targetinp);
    1. int wideth = src.getWidth(null);
    1. int height = src.getHeight(null);
    1. BufferedImage image = new BufferedImage(wideth, height,
    1. BufferedImage.TYPE_INT_RGB);
    1. Graphics g = image.createGraphics();
    1. g.drawImage(src, 0, 0, wideth, height, null);
    1. //水印文件
    1. Image src_biao = ImageIO.read(pressImg);
    1. int wideth_biao = src_biao.getWidth(null);
    1. int height_biao = src_biao.getHeight(null);
    1. g.drawImage(src_biao, (wideth - wideth_biao),
    1. (height - height_biao)-40 , wideth_biao, height_biao, null);
    1. //水印文件结束
    1. g.dispose();
    1. ByteArrayOutputStream os = new ByteArrayOutputStream();
    1. ImageIO.write(image,format,os);
    1. byte [] bytes = os.toByteArray();
    1. BufferedOutputStream bos = null;
    1. FileOutputStream fos = null;
    1. file = new File("temp");
    1. fos = new FileOutputStream(file);
    1. bos = new BufferedOutputStream(fos);
    1. bos.write(bytes);
    1. bos.close();
    1. fos.close();
    1. os.close();
    1. } catch (Exception e) {
    1. e.printStackTrace();
    1. }
    1. return file;
    1. }


以上工具代码

无论压缩 水印   都是差不多用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. http://blog.csdn.net/congcong68/article/details/39256307

    http://blog.csdn.net/congcong68/article/details/39256307

  2. VB 在Visio 2010 以编程方式创建子进程图

    在2010年Visio以编程方式创建子进程图 Office 2010  https://msdn.microsoft.com/en-us/library/gg650651.aspx   简介: 学习如 ...

  3. Android jni GetFieldID 和 GetMethodID 函数的说明

    Android jni GetFieldID 和 GetMethodID 函数的说明 GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类 ...

  4. iframe中,页面转换后回到页面的顶部

    看到网上有这样描述的: 现在A页面内分为上下两个部分,上部分是top,下部分分左右,左是treeview右边是iframe,iframe内嵌一个B页面,B页面的内容实质上是个月刊,可以理解为杂志,里面 ...

  5. [学习笔记—Objective-C]《Objective-C-基础教程 第2版》第九章 内存管理

    内存管理: 确保在须要的时候分配内存,在程序运行结束时释放占用的内存 假设仅仅分配内存而不释放内存,则会发生内存泄漏(leak memory),程序的内存占用量不断添加.终于会被耗尽并导致程序崩溃. ...

  6. jenkins部署前端node项目实例

    Jenkins 分发文件用到rsync命令   在 /etc/passwd中 修改 jenkins 为 /bin/bash jenkins:x:494:494:Jenkins Automation S ...

  7. Javascript 判断网页横竖屏

    本篇文章由:http://xinpure.com/javascript-to-determine-page-anyway-screen/ Html5 流行至今,自适应的网站已经多如牛毛,但是横竖屏的切 ...

  8. DEV 第三方控件报表分类汇总

    最近这段时间难得空闲,于是打算做个报表功能,主要实现数据的分类汇总,以便不时之需.首先看看效果: 主要是根据工程类型这个字段进行分类,每个分类下对应的项目金额进行求和,当然,你也可以根据实际需求,进行 ...

  9. js闭包避免内存泄漏 减少内存使用 避免对象无法回收注意事项

    闭包 如果闭包的作用域中保存着一个 HTML 元素,则该元素无法被销毁.(下面代码来自高程) 闭包是 JavaScript 开发的一个关键方面:匿名函数可以访问父级作用域的变量. function a ...

  10. Js日常笔记之数组

    1.Array构造函数有一个很大的问题,就是不同的参数,会导致它的行为不一致,es6好像专门为此对数组有升级 因此,不建议使用new Array生成新数组,直接使用数组字面量[...]是更好的做法. ...