`
Xcupidtx
  • 浏览: 14993 次
社区版块
存档分类
最新评论

JAVA制作文字、图片水印 - 附测试代码

    博客分类:
  • JAVA
阅读更多
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 PDF转图片 ICEpdf-pro-5.0.6-P01 去水印 jar文件附带实例

    使用Icepdf 5.0.6 P01最新版PDF转图片,附带jar包和转换demo实例工具类,并且完美去水印。详细去水印方法请看我的博客文章http://blog.csdn.net/wangpeng468/article/details/37810445

    基于Java给图片添加文字或图片水印

    - 对于文字水印,可以调用`Graphics2D.drawString()`方法,传入文字和位置坐标。 3. **设置水印属性** - 可以调整字体、颜色、透明度、旋转角度等属性,以定制水印的外观。例如,`setFont()`, `setColor()`, `...

    水印 java Graphics2D实现文字图片水印

    在Java编程语言中,添加文字或图片水印是一项常见的任务,尤其在处理图像处理和多媒体应用时。Graphics2D是Java 2D API的一部分,它提供了丰富的绘图和图形操作功能,包括添加水印到图像。下面将详细介绍如何使用...

    Java实现打文字和图片打水印

    在Java中,可以使用`java.awt`和`javax.imageio`库来处理图像并添加文字水印。通过创建一个Graphics2D对象,我们可以将文字绘制到图像上,调整透明度、位置和旋转角度。例如: ```java BufferedImage image = ...

    区块链原理-附代码.pptx

    区块链原理-附代码.pptx 区块链原理-附代码.pptx 区块链原理-附代码.pptx

    使用java实现图片水印

    除了基本的图片和文字水印外,还可以进一步扩展以下功能: - **动态调整水印大小**:根据原图尺寸自动调整水印大小。 - **多水印叠加**:在一个图片上添加多个水印。 - **透明度控制**:控制水印的透明度,使其更加...

    java Jacob完美实现word添加图片水印(内附源码及jar包)

    java Jacob完美实现word添加图片水印(内附源码及jar包)。 公司最近让搞Word文档添加水印,所有下载的文档需要添加公司印章,搞了好多天才实现,利用Jacob完美实现word添加图片水印(注意需要把dll文件放到jdk的bin...

    Java生成文字水印或图片水印

    分享:Java生成文字水印或图片水印

    java源码包---java 源码 大量 实例

    util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以...

    java实现图片上传并添加水印效果(文字水印,蒙版,logo图片),自动进行文字大小行数位置匹配 ,文字自动换行

    2. **水印类型**:水印分为文字水印、蒙版水印和logo图片水印。文字水印涉及在图像上绘制文字,需要调整字体、颜色、透明度和角度;蒙版水印则是在图像上覆盖一层半透明的图案或颜色;logo图片水印则是将一个图片...

    去除pdf的图片水印和文字水印

    使用itext开发包对pdf文件进行去水印操作,包括删除图片水印和文字水印。通过遍历pdf的contents对象和xobjects对象,进行对象删除,速度快,效率高

    eclipse-java-indigo-SR2-win32

    综上所述,"eclipse-java-indigo-SR2-win32"是一个专门为Windows 32位系统设计的Eclipse IDE版本,它包含了对Java开发的强大支持,并且集成了FindBugs、PMD和Checkstyle等代码质量管理工具,旨在提供一个高效、稳定...

    java 水印(水印适应图片大小,但个别图片太小不支持)

    - **文字水印的字体大小动态调整**:根据图片宽度调整文字水印的字体大小,保持合适的比例。 - **避免覆盖关键内容**:尽量将水印放置在不会遮挡图片重要信息的区域。 通过以上步骤和策略,我们可以在Java中实现...

    java 图片添加水印

    java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字

    java图片文字水印

    本文将深入探讨如何使用Java实现这一功能,包括文字水印和图片水印的创建,以及如何调整文字的颜色、大小等属性。 首先,我们需要引入一个支持图像处理的库,如Apache Commons Imaging(前身是Sanselan)或Java ...

    java2python--java代码转python工具

    “java2python-master”可能是指这个工具的主分支或主版本,暗示这是一个Git仓库的名字,其中包含项目的源代码、文档、测试用例以及其他资源。用户可以克隆或下载这个仓库,编译并运行工具,或者根据提供的文档了解...

    图片批量处理大小,批量加图片水印,文字水印

    解决图片的批量处理大小,批量给图片加图片水印,加文字水印

    javacv-platform-1.3-bin.zip

    它通过提供Java接口来封装现有的C++库,使得开发者无需深入理解底层的C++代码就能使用这些功能强大的库。JavaCV 1.3版本是这个项目的一个稳定版本,提供了多个更新和改进。 首先,OpenCV是JavaCV的核心部分,它是一...

    java制作水印简单强大易学

    在Java编程语言中,制作水印是一项常见的任务,特别是在处理图像时,比如为版权保护或者品牌宣传添加标识。本文将详细介绍如何使用Java实现一个简单且强大的水印制作程序,易于学习和理解。 首先,我们需要引入Java...

Global site tag (gtag.js) - Google Analytics