public byte[] pressImage(String waterImgPath, byte[] targetImg) throws Exception {
try {
InputStream is = new ByteArrayInputStream(targetImg);
Image src = ImageIO.read(is);
int width = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, width, height, null);
// 水印文件
File waterFile = new File(waterImgPath);
Image waterImg = ImageIO.read(waterFile);
int w = waterImg == null ? 0 : waterImg.getWidth(null);
int h = waterImg == null ? 0 : waterImg.getHeight(null);
g.setComposite(AlphaComposite
.getInstance(AlphaComposite.SRC_OVER, 0.2f));
int sw = (width % w) /(width / w + 1);//填充水印图片横向间距
int sh = (height % h) /(height / h + 1);//填充水印图片纵向间距
for(int i = sw; i + w + sw <= width; i += w + sw) {
for (int j = sh; j + h + sh <= height; j += h + sh) {
g.drawImage(waterImg, i, j, null);
}
}
g.dispose();
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", out);
return out.toByteArray();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
分享到:
相关推荐
在C#编程中,添加水印到图片是一项常见的任务,特别是在设计软件或处理图像的应用程序中。本示例主要关注如何使用C#和WPF(Windows Presentation Foundation)技术来实现这个功能,既可以添加图片水印,也可以添加...
在Spring Boot框架中实现图片上传并添加水印的功能,是一个常见的需求,特别是在开发涉及多媒体内容的Web应用时。下面将详细介绍这个过程,并涵盖相关的技术点。 首先,我们需要了解Spring Boot如何处理文件上传。...
在“易语言图片加水印”这个主题中,我们主要探讨如何利用易语言来实现对图片添加水印的功能。水印通常用于保护版权,或者为图像增添个性化的标识。 首先,我们要理解什么是水印。水印是图片处理中的一个常见概念,...
在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...
开发一个项目,需要用到图片加水印的功能,这里考虑使用后台加水印,在上传的时候或者回显到页面时候,取图片文件的流数据,进行加水印在返回流数据就行了,非常简单,不懂可以问我
QT给图片加水印是一种常见的图像处理操作,用于在图片上添加标识或版权信息,防止未经授权的使用。本文将深入探讨如何使用Qt框架实现这一功能,包括必要的编程知识和步骤。 首先,Qt是一个跨平台的应用程序开发框架...
使用PHP,为图片添加水印图片。 缩放源水印图片,使其最大宽/高度不能超过原图片。
在网页上对图片添加水印,通常是为了防止图片被未经授权的用户盗用,或者为了在分享的图片上显示一些特定的信息,如日期、用户标识或公司Logo。 使用HTML2Canvas添加水印的过程分为以下几个步骤: 1. **引入库**:...
### Delphi 实现给图片添加水印:使用 ImageEn 控件 #### 背景介绍 在 Delphi 开发环境中,实现对图像处理的需求时,经常会遇到需要为图片添加水印的情况。添加水印不仅可以保护图片版权,还能提高品牌识别度。本文...
总的来说,这个WinForm应用提供了一个方便的工具,可以对图片进行多种操作,如加水印(文字和图片)、等比例缩放和压缩,这对于日常需要处理图片的工作非常实用。通过理解并应用GDI+的图形处理技术,开发者可以...
易优批量图片加水印插件是一款针对易优CMS(EyouCMS)设计的专业插件,主要用于提升网站的用户体验和优化网页加载速度。在互联网环境中,网页加载速度是影响用户体验的关键因素之一,尤其是当页面中包含大量图片时,...
VB(Visual Basic)是一种由微软开发的编程环境,它提供了简单易用的图形用户界面(GUI)创建工具和丰富的功能,使得创建给图片加水印的小程序变得容易。下面我们将深入探讨如何使用VB来实现这个功能,以及涉及到的...
为了解决这一问题,市场上应运而生了一种专门用于在图片上添加水印的工具,本文将详细介绍这款“超好用的图片加水印处理工具”的功能特点以及如何使用它来保护您的图片版权。 首先,要理解什么是图片加水印处理工具...
通过以上步骤,你就可以在Winform应用中实现一个功能完善的图片加水印工具,包括图片和文字水印,以及透明度和字体调整。这个过程涉及了Windows Forms控件的使用、图像处理和图形绘制,是.NET框架中基础但实用的技能...
Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...
总之,这个“java图片加水印工具类”是一个实用的组件,可以帮助Java开发者轻松地在图片上添加水印,提升工作效率,同时保持代码的整洁和可维护性。无论你是进行个人项目还是企业级应用,它都能成为一个有价值的辅助...
1. **给图片加水印**: 在这个项目中,开发者可能会使用`wx.createSelectorQuery()`来选取Canvas元素,然后通过`canvasContext.drawImage()`方法加载图片并将其绘制到Canvas上。接着,利用`canvasContext....
java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字
在C#编程中,给图片添加水印是一项常见的...总之,C#提供了一套完整的API来处理图像和水印,使得在程序中实现图片加水印变得简单易行。通过理解并熟练运用上述技术,开发者可以轻松地为自己的项目添加这一实用功能。
"Vb图片加水印组件.rar" 提供了一个实用的技术方案,帮助开发者实现这一功能。该组件使得在图片上叠加图片或文字水印变得简单,通过VB的内置控件Picture1.Picture属性进行操作,并能将处理后的图片保存为新的格式。 ...