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设计模式-图解-附代码
在Java编程语言中,处理图片水印涉及到图像处理和图形绘制技术。`Graphics2D`是Java 2D API的一部分,它提供了丰富的功能,可以用来在图像上添加文本、图像等元素,实现水印效果。下面我们将深入探讨如何使用`...
除了基本的图片和文字水印外,还可以进一步扩展以下功能: - **动态调整水印大小**:根据原图尺寸自动调整水印大小。 - **多水印叠加**:在一个图片上添加多个水印。 - **透明度控制**:控制水印的透明度,使其更加...
java Jacob完美实现word添加图片水印(内附源码及jar包)。 公司最近让搞Word文档添加水印,所有下载的文档需要添加公司印章,搞了好多天才实现,利用Jacob完美实现word添加图片水印(注意需要把dll文件放到jdk的bin...
分享:Java生成文字水印或图片水印
2. **水印类型**:水印分为文字水印、蒙版水印和logo图片水印。文字水印涉及在图像上绘制文字,需要调整字体、颜色、透明度和角度;蒙版水印则是在图像上覆盖一层半透明的图案或颜色;logo图片水印则是将一个图片...
使用itext开发包对pdf文件进行去水印操作,包括删除图片水印和文字水印。通过遍历pdf的contents对象和xobjects对象,进行对象删除,速度快,效率高
综上所述,"eclipse-java-indigo-SR2-win32"是一个专门为Windows 32位系统设计的Eclipse IDE版本,它包含了对Java开发的强大支持,并且集成了FindBugs、PMD和Checkstyle等代码质量管理工具,旨在提供一个高效、稳定...
第二种是添加图片水印和文字水印两种方法,水印图片可以是GIF,PNG透明的文件,我一般采用的是PNG的,因为它的质量和GIF相比要高一些; 适用人群:Java开发者 使用场景:版权信息标注 目标:可以直接拿来用
本文将深入探讨如何使用Java实现这一功能,包括文字水印和图片水印的创建,以及如何调整文字的颜色、大小等属性。 首先,我们需要引入一个支持图像处理的库,如Apache Commons Imaging(前身是Sanselan)或Java ...
大学生体质测试-大学生体质测试系统-大学生体质测试系统源码-大学生体质测试管理系统-大学生体质测试管理系统java代码-大学生体质测试系统设计与实现-基于springboot的大学生体质测试系统-基于Web的大学生体质测试...
对于给定的压缩包文件"Hello",假设它包含了一个示例Java代码或一个已经添加了水印的图片。如果代码,可以通过阅读和理解代码结构,学习如何在自己的项目中应用类似的方法。如果是一个图片,可能是已经加了水印的...
“java2python-master”可能是指这个工具的主分支或主版本,暗示这是一个Git仓库的名字,其中包含项目的源代码、文档、测试用例以及其他资源。用户可以克隆或下载这个仓库,编译并运行工具,或者根据提供的文档了解...
`Doc2pdf.java`是一个示例代码文件,展示了如何使用Aspose.Words将Word文档转换为PDF。在Java程序中,你需要导入Aspose库,然后加载Word文档,创建一个PdfSaveOptions对象,设置相关选项,最后调用save方法,将Word...
在Java编程语言中,生成带有水印的图片是一项常见的任务,尤其在版权保护、品牌标识或者数据可视化等领域。本文将详细讲解如何利用Java实现这一功能,包括如何动态设置水印的文字大小、颜色以及水印的倾斜角度。 ...
- 为了管理类和接口,Java引入了包的概念,如`java.util`,`java.io`等,方便代码的组织和导入。 5. **输入输出(I/O)**: - Java的`java.io`包提供了丰富的类处理输入输出,如FileInputStream, ...
在Java编程语言中,制作水印是一项常见的任务,特别是在处理图像时,比如为版权保护或者品牌宣传添加标识。本文将详细介绍如何使用Java实现一个简单且强大的水印制作程序,易于学习和理解。 首先,我们需要引入Java...
接着,`selenium-java-2.44.0-srcs.jar` 包含的是Selenium WebDriver的Java源代码。这对于开发者来说非常有价值,因为它允许深入研究Selenium的内部工作原理,调试问题,或者根据需要自定义和扩展其功能。源代码也...
Java-图书馆管理系统(Java图书管理系统-附源码附全代码)-课程设计报告
aspose-cells-8.5.0-java版,随手修改了License文件,去掉了导出图片的水印。仅供个人学习使用,不要用于商业版本。