今天遇到一个问题,用户上传图片的时候,有些敏感信息 需要在图片上进行编辑一下(将敏感信息进行涂抹)
上传图片 在图片上记录用户涂抹的 坐标 (相对应左上角) 绘制 矩形框框
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图片浏览管理系统是一款基于Java开发的简易应用,旨在帮助用户方便地查看和管理他们的图片集合。这个系统可能包含了文件浏览器组件、图片预览功能、以及一些基本的图片操作选项,如旋转、缩放等。下面将详细介绍...
在Java Web开发中,图片上传预览功能是一个常见的需求,尤其在用户交互性强的网站或应用中。这个功能允许用户在上传图片之前查看其效果,确保上传的图片符合预期。以下将详细介绍如何在Java环境中,结合ASP和JSP技术...
Java图片编辑工具是一款基于Java开发的图像处理软件,它的设计目标是方便地集成到其他Java项目中,提供灵活的图片编辑功能。这个工具利用了Java的强大功能和跨平台特性,使得开发者可以在各种操作系统上实现图像的...
在Java编程语言中,将多张图片合成一张图片是一项常见的图像处理任务,广泛应用于各种应用场景,如社交媒体拼图、报告生成、数据可视化等。要实现这个功能,我们需要使用到Java的图像处理库,如Java AWT(Abstract ...
这个文件可能是实现以上功能的Java源代码文件,包含了读取、处理和写回图片的逻辑。通过阅读和分析这个文件,你可以更好地理解字节流与图片转化的实际操作。 综上所述,Java的字节流机制提供了一种灵活且强大的...
在Java编程语言中,处理图像是一项常见的任务,包括图片的旋转、翻转和镜像操作。这些功能在很多场景下都很实用,例如照片编辑、图像处理应用或是网页开发。本篇将详细介绍如何使用Java实现这些功能,并以`ImgRotate...
"Java中Excel转图片工具包(纯java)"就是这样一个解决方案,它实现了将Excel文件通过PDF中间格式转化为图片的功能。 首先,让我们了解一下这个工具包的工作原理。Excel文件本身并不直接支持转换为图片格式,但可以...
在Java Web开发中,图片上传是一项常见的功能,用于允许用户上传他们的图片文件到服务器,然后在网站上展示。本教程将深入讲解如何使用Struts2框架和Apache Commons FileUpload库来实现这一功能。 首先,我们需要...
开发一个项目,需要用到图片加水印的功能,这里考虑使用后台加水印,在上传的时候或者回显到页面时候,取图片文件的流数据,进行加水印在返回流数据就行了,非常简单,不懂可以问我
新增的ImageUtil提供了exportToImage方法,传入option对象(必填)、图片存储路径(选填)、图片名称(选填)、宽高(选填),生成图片后调用浏览器预览功能,等待文件保存完成,如果保存失败,自动重试3次,最后...
java 图片添加文字,java 图片添加文字
但是有一个缺点,可能也是java的缺点吧,呵呵。 <br>在jdk1.6以下的版本环境下,压缩部分图片会很慢,经过我测试,如果图片的DPI越高,速度越慢,一般WEB使用图片DPI都是72,速度很快。大家可以试下。我测试了几...
java上传图片功能,图片太大,等比例压缩算法(原尺寸压缩)
本篇文章将深入探讨如何在Java中实现这些功能,特别是针对PNG格式的图片,因为PNG格式支持透明度,但在处理过程中可能会出现背景变黑的问题。 首先,我们需要引入Java的`java.awt`和`javax.imageio`包,它们提供了...
通过以上步骤,我们可以成功地在Java SpringBoot应用中集成PaddleOCR,实现高效、便捷的OCR图片识别服务。这种集成方式不仅充分利用了PaddleOCR的强大功能,也发挥了Java在后端服务上的稳定性和易用性,为开发者提供...
java图片处理工具类JAR包 java-image-scalingjar
这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,特别是对于大量外部资源的情况。下面我们将详细探讨这个过程涉及的关键知识点。 1. **Java和JSP基础**: Java是一种广泛使用...
在Java编程语言中,处理图像是...通过以上步骤,我们可以在Java中实现一个功能齐全的图像处理组件,能够支持图片的中心放大、缩小、移动以及鼠标拖移。这在开发涉及图像交互的应用,如地图应用或图像编辑器时非常有用。
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...
Java GUI 背景图片添加方法 在 Java 中添加背景图片到 GUI 界面是一项常见的需求。通过使用 Java 的图形用户界面(GUI)组件,例如 JFrame、JPanel、JLabel 等,可以轻松地将背景图片添加到 GUI 界面中。本文将详细...