因为项目中考虑到添加图片版权的保护,特意看了下水印的处理...以下有两种方式:
第一种是添加文字水印:
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.swing.*;
import com.sun.image.codec.jpeg.*;
public class WaterSet {
/** *//**
* 给图片添加水印
*
* @param filePath
* 需要添加水印的图片的路径
* @param markContent
* 水印的文字
* @param markContentColor
* 水印文字的颜色
* @param qualNum
* 图片质量
* @return
*/
public boolean createMark(String filePath, String markContent,
Color markContentColor, float qualNum) {
ImageIcon imgIcon = new ImageIcon(filePath);
Image theImg = imgIcon.getImage();
int width = theImg.getWidth(null);
int height = theImg.getHeight(null);
BufferedImage bimage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = bimage.createGraphics();
g.setColor(markContentColor);
g.setBackground(Color.white);
g.drawImage(theImg, 0, 0, null);
g.drawString(markContent, width / 5, height / 5); // 添加水印的文字和设置水印文字出现的内容
g.dispose();
try {
FileOutputStream out = new FileOutputStream(filePath);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
param.setQuality(qualNum, true);
encoder.encode(bimage, param);
out.close();
} catch (Exception e) {
return false;
}
return true;
}
}
第二种是添加图片水印和文字水印两种方法,水印图片可以是GIF,PNG透明的文件,我一般采用的是PNG的,因为它的质量和GIF相比要高一些:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public final class ImageUtils {
public ImageUtils() {
}
/**//*
* public final static String getPressImgPath() { return ApplicationContext
* .getRealPath("/template/data/util/shuiyin.gif"); }
*/
/** *//**
* 把图片印刷到图片上
*
* @param pressImg --
* 水印文件
* @param targetImg --
* 目标文件
* @param x
* --x坐标
* @param y
* --y坐标
*/
public final static void pressImage(String pressImg, String targetImg,
int x, int y) {
try {
//目标文件
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
//水印文件
File _filebiao = new File(pressImg);
Image src_biao = ImageIO.read(_filebiao);
int wideth_biao = src_biao.getWidth(null);
int height_biao = src_biao.getHeight(null);
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
(height - height_biao) / 2, wideth_biao, height_biao, null);
//水印文件结束
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/** *//**
* 打印文字水印图片
*
* @param pressText
* --文字
* @param targetImg --
* 目标图片
* @param fontName --
* 字体名
* @param fontStyle --
* 字体样式
* @param color --
* 字体颜色
* @param fontSize --
* 字体大小
* @param x --
* 偏移量
* @param y
*/
public static void pressText(String pressText, String targetImg,
String fontName, int fontStyle, int color, int fontSize, int x,
int y) {
try {
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
// String s="www.qhd.com.cn";
g.setColor(Color.RED);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, wideth - fontSize - x, height - fontSize
/ 2 - y);
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) {
pressImage("F:/logo.png", "F:/123.jpg", 0, 0);
}
}
分享到:
相关推荐
在C#编程中,添加水印到图片...总之,C#结合WPF为图片添加水印提供了一种强大而灵活的方法,无论是图片还是文字水印,都可以轻松实现。通过创建DEMO并运行代码,你可以进一步熟悉这个过程,并将其应用到自己的项目中。
"图片批量加水印软件 数字水印"是一款专为此目的设计的工具,它能够帮助用户快速、便捷地为大量图片添加数字水印,有效地防止图片被盗用或未经授权的传播。以下是对这个主题的详细知识点介绍: 1. **数字水印**:...
为解决部分用户使用其他用户资源重复上传相同信息的问题(如房产图、汽车图、商品图等),您可在用户上传图片资源前先进行全盲水印提取,若提取到水印图信息则证明该图片来自之前已有资源,并进行相应操作(如提醒...
在IT行业中,为图片添加文字水印是一种常见的图像处理技术,主要目的是保护版权、标识出处或者传达特定信息。实现这一效果通常涉及到图像处理库的使用,例如Python中的PIL(Python Imaging Library)或OpenCV等。...
ZZImageAddWatermark是一个专门为Swift开发者设计的库,它提供了方便的功能,让你能够为图片添加文字水印、图片水印,甚至自定义生成二维码,并将这些水印应用到图片上。这个库对于那些需要在应用中实现图片编辑功能...
在“易语言图片加水印”这个主题中,我们主要探讨如何利用易语言来实现对图片添加水印的功能。水印通常用于保护版权,或者为图像增添个性化的标识。 首先,我们要理解什么是水印。水印是图片处理中的一个常见概念,...
总的来说,这个WinForm应用提供了一个方便的工具,可以对图片进行多种操作,如加水印(文字和图片)、等比例缩放和压缩,这对于日常需要处理图片的工作非常实用。通过理解并应用GDI+的图形处理技术,开发者可以...
在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...
2. 商业用途:企业可以为产品图片添加品牌标识或序列号,便于跟踪和管理。 3. 社交分享:个人用户在社交媒体上分享照片时,可加入水印,表明所有权。 六、注意事项 虽然数字水印提供了一定的保护,但并不能完全防止...
1. 加载图像:使用Image类的FromFile方法加载要添加水印的图片。 2. 创建Graphics对象:使用Graphics.FromImage方法从加载的图像创建Graphics对象,这将用于在图像上绘制。 3. 设置文本属性:通过Font类设置字体、...
在IT行业中,尤其是在网站开发和图像处理领域,为图片添加水印是一项常见的需求。水印可以是文字、图案或者是数字,其主要目的是保护版权、标识出处或者增加视觉效果。在这个主题中,我们将深入探讨如何使用ASP.NET...
在网页设计中,保护原创图片免受盗用是常见的需求,而实现这一目标的一种方法就是为图片添加水印。"jQuery图片自动添加水印插件"是一个非常实用的工具,它允许开发者轻松地在图片上动态添加自定义的水印,从而提升...
然而,随着图片的广泛应用,版权保护问题日益凸显,为图片添加水印以表明所有权成为了版权保护的一种常见手段。本文将详细介绍一款专业的图片批量加水印工具,探讨其功能、优势以及如何有效使用。 ## 水印的定义与...
总结,通过MATLAB的图像处理工具箱,我们可以轻松地为图片添加水印,从而实现版权保护。在实际应用中,可以根据具体需求进行代码的调整和优化,例如,增加动态调整水印位置的选项,或者支持批量处理多张图片。希望这...
用户无需逐个处理图片,只需指定文件夹或上传一批图片,插件就能快速地为所有图片进行压缩和添加水印,大大提高了工作效率。 4. 兼容性:作为一款针对易优CMS的插件,它能够无缝集成到易优系统的后台管理界面,用户...
1. **批量处理**:用户可以一次性选择多个图片文件,软件会自动依次对每个图片添加预设的水印,大大节省了手动操作的时间。 2. **自定义水印**:用户可以根据需求设定水印的文本内容、字体、颜色、透明度、大小、...
- 多图批量处理:一次性为多张图片添加水印,提高工作效率。 - 格式支持:支持常见图像格式如JPEG、PNG、BMP等。 - 高级选项:可能包括旋转、缩放、颜色调整等,以适应不同类型的图像。 4. **使用步骤**: - ...
水印通常用于保护版权或者为图片增加一些标识信息。在Java中,我们可以使用诸如`Java AWT`或`JavaFX`库来创建和添加水印。例如,使用`BufferedImage`类创建一个新的图像层,然后在该层上绘制文本或图形作为水印。...
QT给图片加水印是一种常见的图像处理操作,用于在图片上添加标识或版权信息,防止未经授权的使用。本文将深入探讨如何使用Qt框架实现这一功能,包括必要的编程知识和步骤。 首先,Qt是一个跨平台的应用程序开发框架...
在IT领域,图片添加水印是一项常见的图像处理任务,它涉及到图像编辑、版权保护和品牌宣传等多个方面。水印可以是文字、图标或者图形,它们被...通过掌握各种工具和技巧,我们可以轻松地为图片添加专业且美观的水印。