`

Java 水印

 
阅读更多
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() {

    }

    /**
     * 把图片印刷到图片上
     * 
     * @param pressImg
     *            -- 水印文件
     * @param targetImg
     *            -- 目标文件
     * @param x
     * @param 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 - x, height
                    - height_biao - 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, int fontSize, int color, 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("c:/123.gif", "c:/123.bmp", 20, 20);
        pressText("中国", "c:/123.bmp", "黑体", 0, 100, 0, 200, 200);

    }
}

 

分享到:
评论

相关推荐

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

    在Java编程中,添加水印是一项常见的图像处理任务,它涉及到图像处理库的使用和算法设计。本知识点主要探讨如何在Java中实现自适应图片大小的水印功能,以及遇到图片过小时的处理策略。 首先,我们需要理解水印的...

    java水印功能通用类

    "java水印功能通用类"是一个专门为实现这一目的而设计的代码库,它提供了一种方便、可复用的方式来为各种类型的数据添加水印。下面我们将深入探讨Java水印功能的相关知识点,以及如何使用此类库进行实际操作。 1. *...

    aspose-cells-24.2 for java去水印

    aspose.cells-24.2 for java 去水印 jar 学习使用!!!学习使用!!!学习使用!!!aspose.cells-24.2 for java 去水印 jar 学习使用!!!学习使用!!!学习使用!!!aspose.cells-24.2 for java 去水印 jar ...

    Java水印图片字体

    在Java开发中,创建带有水印的图片是一项常见的任务,特别是在图像处理或版权保护的应用场景中。水印可以是文字、图像或者logo,用于表明图片的归属或进行版权声明。在Java中实现这一功能,我们需要涉及到图形处理和...

    shuiyin.rar_java水印

    "shuiyin.rar_java水印"这个压缩包文件显然包含了关于如何在Java环境中实现图像水印的代码或教程。Java水印技术允许我们在图像上添加不可见或可见的标识,以证明所有权、保护版权或者追踪非法复制。下面我们将详细...

    java 水印测试工具 解压后,执行java -jar 

    Java水印测试工具是一种用于在图像上添加水印的实用程序,主要应用于软件测试和版权保护。这个工具可能由Java编程语言编写,因此其可移植性强,能在多种操作系统上运行,如Windows、Linux和Mac OS。`java -jar`命令...

    abc.rar_java 水印_watermark java_图像处理_图像识别java

    "abc.rar_java 水印_watermark java_图像处理_图像识别java"这个标题揭示了我们将讨论的是一个关于Java实现的水印添加功能,同时可能涉及到图像处理和识别的组件。下面将详细阐述这些概念。 1. **Java图像处理**:...

    java 水印 图像处理 图片分割 裁剪 缩放

    1. **Java水印**:在图像上添加水印是保护版权和增加品牌识别度的一种常见方法。在Java中,可以使用Java Advanced Imaging (JAI)库或者Apache Commons Imaging库来实现。水印可以是文字、图像或图形,通常位于图片的...

    采用java实现图片水印

    Java作为一种多用途且功能强大的编程语言,提供了丰富的库和API来处理图像,包括添加水印。本篇文章将详细探讨如何使用Java实现图片水印的添加,以及相关的知识点。 首先,我们需要了解Java中的图像处理库。Java...

    java 水印图片

    在Java编程语言中,添加水印到图片以及生成条形码是常见的图像处理任务,尤其在数字版权保护、产品标记和文档安全等方面有着广泛应用。在这个主题下,我们将深入探讨如何在Java中实现这两个功能。 首先,让我们关注...

    Java水印应用程序(含源码)+GUI界面+使用说明+可做毕设

    Java水印应用程序是一个简单的项目。整个系统是在Sublime Text编辑器中制作的。该系统没有数据库支持,但支持所有必要的功能。 系统简介 这个Java水印应用程序易于理解和操作。系统的目的是为你的照片添加水印。...

    java水印实现代码

    在Java编程语言中,添加水印是一项常见的任务,特别是在处理图像时。水印可以用于版权保护、品牌标识或提供额外信息。以下是一个关于如何在Java中实现水印功能的详细解释。 首先,我们需要引入处理图像的库。Java...

    java中处理图片水印

    在Java编程语言中,处理图片水印涉及到图像处理和图形绘制技术。`Graphics2D`是Java 2D API的一部分,它提供了丰富的功能,可以用来在图像上添加文本、图像等元素,实现水印效果。下面我们将深入探讨如何使用`...

    Aspose for Java 去除水印和数量限制

    然而,免费版本的Aspose for Java通常会带有水印,并且对处理文件的数量有限制,这可能对商业应用造成不便。 在Aspose for Java中去除水印通常涉及对文档内容的直接操作。水印通常以图形或文本的形式嵌入到文档的...

    java 图片水印 改变图片大小

    在Java编程领域,图片处理是一项常见的任务,包括添加水印、改变图片大小等。这里我们将深入探讨这些知识点,以及如何在Struts2框架下实现它们。 首先,让我们了解"图片水印"。水印通常用于保护版权或者为图片增加...

    java水印[参照].pdf

    Java 图片水印技术主要涉及图像处理和图形绘制,用于在源图像上添加标识或文本,以保护版权或增加视觉效果。以下是对给定代码的详细解释和扩展: 1. **导入的包**: - `java.awt`: 包含基本的图形、颜色和字体处理...

    PDF文件JAVA去水印源码-PDF-Converter-Services-Online:使用基于REST的云服务转换、合并、水印、安全和OC

    PDF文件JAVA去水印源码Muhimbi PDF Converter 在线服务 关于 这是一项基于 REST 的服务,可以轻松地将文档转换、合并、水印、保护和光学字符识别 (OCR) 添加到大多数编程语言、操作系统和开发平台。 此服务也可作为...

    Java水印.

    在IT行业中,Java水印通常指的是在处理图像或者文档时,使用Java编程语言来添加一种半透明或不显眼的标记,用以保护版权、标识信息或者防止未经许可的复制。这种技术广泛应用在数字媒体、设计、教育以及企业文档管理...

    aspose-cells-8.5.0-java 去水印特别版

    aspose-cells-8.5.0-java版,随手修改了License文件,去掉了导出图片的水印。仅供个人学习使用,不要用于商业版本。

    简单的java添加水印效果

    以上就是一个简单的Java水印添加过程。为了使水印更加灵活,你可以考虑添加参数来控制水印的位置、大小、角度、透明度等。此外,还可以扩展这个功能,使其支持不同类型的文件格式,如PNG、JPEG、GIF等。 在实际应用...

Global site tag (gtag.js) - Google Analytics