package com.bjsxt.mark;
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, x, y, 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, Color 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);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.drawString(pressText, x, 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("D:/test/watermark.png", "D:/test/picture.jpg", 0, 100);
/**加文字水印,字体名,字体样式等,可以查看Font的API**/
// pressText("丘佳胜", "D:/test/picture.jpg", Font.DIALOG, Font.ITALIC, Color.RED, 28, 10, 50);
}
}
分享到:
相关推荐
在Java编程语言中,处理图片水印涉及到图像处理和图形绘制技术。`Graphics2D`是Java 2D API的一部分,它提供了丰富的功能,可以用来在图像上添加文本、图像等元素,实现水印效果。下面我们将深入探讨如何使用`...
使用Icepdf 5.0.6 P01最新版PDF转图片,附带jar包和转换demo实例工具类,并且完美去水印。详细去水印方法请看我的博客文章http://blog.csdn.net/wangpeng468/article/details/37810445
- 对于文字水印,可以调用`Graphics2D.drawString()`方法,传入文字和位置坐标。 3. **设置水印属性** - 可以调整字体、颜色、透明度、旋转角度等属性,以定制水印的外观。例如,`setFont()`, `setColor()`, `...
在Java编程语言中,添加文字或图片水印是一项常见的任务,尤其在处理图像处理和多媒体应用时。Graphics2D是Java 2D API的一部分,它提供了丰富的绘图和图形操作功能,包括添加水印到图像。下面将详细介绍如何使用...
在Java中,可以使用`java.awt`和`javax.imageio`库来处理图像并添加文字水印。通过创建一个Graphics2D对象,我们可以将文字绘制到图像上,调整透明度、位置和旋转角度。例如: ```java BufferedImage image = ...
区块链原理-附代码.pptx 区块链原理-附代码.pptx 区块链原理-附代码.pptx
除了基本的图片和文字水印外,还可以进一步扩展以下功能: - **动态调整水印大小**:根据原图尺寸自动调整水印大小。 - **多水印叠加**:在一个图片上添加多个水印。 - **透明度控制**:控制水印的透明度,使其更加...
java Jacob完美实现word添加图片水印(内附源码及jar包)。 公司最近让搞Word文档添加水印,所有下载的文档需要添加公司印章,搞了好多天才实现,利用Jacob完美实现word添加图片水印(注意需要把dll文件放到jdk的bin...
分享:Java生成文字水印或图片水印
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...
2. **水印类型**:水印分为文字水印、蒙版水印和logo图片水印。文字水印涉及在图像上绘制文字,需要调整字体、颜色、透明度和角度;蒙版水印则是在图像上覆盖一层半透明的图案或颜色;logo图片水印则是将一个图片...
使用itext开发包对pdf文件进行去水印操作,包括删除图片水印和文字水印。通过遍历pdf的contents对象和xobjects对象,进行对象删除,速度快,效率高
综上所述,"eclipse-java-indigo-SR2-win32"是一个专门为Windows 32位系统设计的Eclipse IDE版本,它包含了对Java开发的强大支持,并且集成了FindBugs、PMD和Checkstyle等代码质量管理工具,旨在提供一个高效、稳定...
- **文字水印的字体大小动态调整**:根据图片宽度调整文字水印的字体大小,保持合适的比例。 - **避免覆盖关键内容**:尽量将水印放置在不会遮挡图片重要信息的区域。 通过以上步骤和策略,我们可以在Java中实现...
java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字
本文将深入探讨如何使用Java实现这一功能,包括文字水印和图片水印的创建,以及如何调整文字的颜色、大小等属性。 首先,我们需要引入一个支持图像处理的库,如Apache Commons Imaging(前身是Sanselan)或Java ...
“java2python-master”可能是指这个工具的主分支或主版本,暗示这是一个Git仓库的名字,其中包含项目的源代码、文档、测试用例以及其他资源。用户可以克隆或下载这个仓库,编译并运行工具,或者根据提供的文档了解...
解决图片的批量处理大小,批量给图片加图片水印,加文字水印
它通过提供Java接口来封装现有的C++库,使得开发者无需深入理解底层的C++代码就能使用这些功能强大的库。JavaCV 1.3版本是这个项目的一个稳定版本,提供了多个更新和改进。 首先,OpenCV是JavaCV的核心部分,它是一...
在Java编程语言中,制作水印是一项常见的任务,特别是在处理图像时,比如为版权保护或者品牌宣传添加标识。本文将详细介绍如何使用Java实现一个简单且强大的水印制作程序,易于学习和理解。 首先,我们需要引入Java...