今天遇到一个问题,用户上传图片的时候,有些敏感信息 需要在图片上进行编辑一下(将敏感信息进行涂抹)
上传图片 在图片上记录用户涂抹的 坐标 (相对应左上角) 绘制 矩形框框
String waterString = "_water"; /** * 本功能实现了 在用户上传图片的时候,将敏感信息进行涂抹,并且在上传到图片服务器上 * @param objName 图片名称 * @param url 图片 url * @param waters 水印坐标 x,y,w,h|x,y,w,h (w 代表矩形框框的宽度 h 代表高度) * @return * @throws Exception */ @RequestMapping(value = "/uploadimg") @ResponseBody public String upload2waterImg(String objName,String url , String waters) throws Exception { String picUrl = "error"; InputStream iStream = null; ByteArrayOutputStream bos = null; ByteArrayInputStream bis = null; try { if(!StringUtils.isEmpty(url)&&!StringUtils.isEmpty(waters)){ URL imgUrl = new URL(url); iStream = imgUrl.openStream(); if(iStream!=null){ Image image = ImageIO.read(iStream); int width_img = image.getWidth(null); int height_img = image.getHeight(null); BufferedImage bufferedImage = new BufferedImage(width_img, height_img, BufferedImage.TYPE_INT_RGB); Graphics2D g = bufferedImage.createGraphics(); g.drawImage(image, 0, 0, width_img, height_img, null); String[] water = StringUtils.split(waters, "\\|"); if(water!=null && water.length>0){ for(int i=0;i<water.length;i++){ String[] xy = StringUtils.split(water[i],","); if(xy!=null && xy.length==4){ int x = Integer.parseInt(xy[0]); int y = Integer.parseInt(xy[1]); int w = Integer.parseInt(xy[2]); int h = Integer.parseInt(xy[3]); Rectangle2D.Float r1= new Rectangle2D.Float(x,y,w,h);//定义直角矩形 g.setColor(new Color(0x999999)); // 涂抹颜色 g.fill(r1); //以填充方式绘制直角矩形 } } g.dispose(); } picUrl = objName+waterString; bos = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, PICTRUE_FORMATE_JPG, bos); bis = new ByteArrayInputStream(bos.toByteArray()); s3ServiceUtil.saveObject(picUrl, bis); } } } catch (Exception e) { picUrl = "error"; log.error("/upload upResult = "+false+"/xxx",e); } finally { try { if (iStream != null) { iStream.close(); } } catch (Exception e) { e.printStackTrace(); } if (null != bos) { bos.close(); } if (null != bis) { bis.close(); } } return picUrl; }
相关推荐
java实现图片的打印功能,本代码打印的是75*75的二维码,纸张大小定义为120*83,A4纸等请自行定义
java实现图片上传预览,包含asp和jsp的实现代码,以及相关说明
java实现的图片防篡改功能,采用图片hash生成唯一标识,再进行比对,判断图片是否被篡改过,可运行源码
一个简单的java图片浏览器,希望对你有所帮助!
用java jsp实现图片上床功能,及对图片的剪裁、显示,代码清晰易懂,初学者可以借鉴一下。
java图片上传、控制大小、宽度高度和图片裁剪并保存
利用java将图片加上水印 只需要设置图片属性就行了·
java读取本地图片文件获取流!java读取本地图片文件获取流!
可以很好的集成到你的项目中,用java写的,里面还有用到的类的api的路径,可以参考进行修改,美化,DIY。图片处理引用了ps中对图片处理的一些效果,功能很给力。集成性强。
利用Java程序把多张图片合成一张图片,利用Java程序把多张图片合成一张图片。
完全基于java实现的把一组图片转换为图片,值得收藏!
Java IO 图片加密,使用Java的stream流进行文件的读写,实现图片的加密和解密!
java解析图片验证码
java图片压缩处理(可以压缩为任意大小
java上传图片功能,图片太大,等比例压缩算法(原尺寸压缩)
该工具类可以实现以下几个功能 1、得到有效文件的长度(即大小),以字节表示 getFileSize(String filePath),需要传入文件路径 2、可以上传图片与非图片文件。有二个重构方法 一、无限制文件大小上传upLoad(String...
Java实现字节流与图片的转化
将图片加载到内存 循环图片每个像素 找到你需要修改的像素 进行颜色修改。然后再图片BASE64
java实现图片上传到数据库并显示,利用Struts2和commons-fileupload-1.2.1.jar,代码调试通过 完美运行。
(20080318_3)用Java给图片添加文字或图像水印 【Java水印.rar】文件大小:108 KB (111,078 字节) 解压后是Java源代码。