`
yangjb
  • 浏览: 32752 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java处理图片添加水印

    博客分类:
  • java
阅读更多
图片叠加技术,大多数用于给图片加上水印。
通常情况下,准备2张图片,1张是大的图片(商品图、景色图、广告图等)
另1张是一个LOGO或是客户自己制作的水印或图章。
通过此类,可以把LOGO或水印覆盖到大的图片上面,
从而达到类似于图片版权所有的效果。
如:淘宝网上的商品图片的边角总有"taobao.com"等水印字样。
这些字样就是通过图片叠加技术生成的,而不是个人手工所为。


package com.redbaby.test;

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 class Test {
public static void main(String[] args) {

  try {
/**
* 下面代码的"D:\\1.jpg",是我把商品图片(需要被加水印的图片)
* 保存在D盘,并起名为1.jpg,这里您根据您的图片的实际位置来输
* 入正确的文件路径。
*/
            File formerFile = new File("D:\\1.jpg");
            Image formerImage = ImageIO.read(formerFile);
            //以下2行代码分别获得图片的宽(width)和高(height)
            int width = formerImage.getWidth(null);
            int height = formerImage.getHeight(null);
            System.out.println("原始图片的宽为:"+width+"\n原始图片的高为:"+height);
            BufferedImage image = new BufferedImage(width, height,
                    BufferedImage.TYPE_INT_RGB);
            Graphics g = image.createGraphics();
            g.drawImage(formerImage, 0, 0, width, height, null);

            /**
* 下面代码的"D:\\sy.gif",是我把水印图片保存在D盘,
* 并起名为sy.gif,这里您根据您的图片的实际位置来输
* 入正确的文件路径。
*/
            File waterMarkFile = new File("D:\\sy.gif");
            Image waterMarkImage = ImageIO.read(waterMarkFile);
            int widthWMI = waterMarkImage.getWidth(null);
            int heightWMI = waterMarkImage.getHeight(null);
            /**
             * 以下2行代码的x,y分别表示水印图片在原始图片的位置。
             * x,y为坐标。width,height为商品图片的宽和高。
             * width * 0.5 表示水印图片的水平位置覆盖在商品图片
             * 水平位置的正中间。height * 0.5 表示垂直位置。
             * 最终无论商品图片的宽高是多少,水印图片都会显示在
             * 商品图片的正中间。
             * 您可以根据您的需求,更改0.5这个数值,达到您想要的效果。
             * 这里我说的商品图片就是要被水印覆盖的图片。
             */
            int x = (int)(width * 0.5); //"0.5"小数越大,水印越向左移动。
            int y = (int)(height * 0.5); //"0.5"小数越大,水印越向上移动。
            g.drawImage(waterMarkImage, width - widthWMI - x, height - heightWMI - y, widthWMI,
            heightWMI, null);
           
            /**
             * 输出被加上水印的图片,也就是最终的效果。
             * 注意!下面代码的"D:\\1.jpg"是最后输出
             * 的文件,如果跟你原始文件的路径和名字相同
             * 的话,那么会覆盖掉原始文件。
             * 如:我的原始文件位于"D:\\1.jpg",而下
             * 面的代码运行之后,我的原始文件就会丢失被
             * 覆盖掉。
             * 您可以根据您的需要把加上水印后的图片放到
             * 您指定的文件路径。
             */
            g.dispose();
            FileOutputStream out = new FileOutputStream("D:\\1.jpg");
            //下面代码将被加上水印的图片转换为JPEG、JPG文件
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            encoder.encode(image);
            out.close();
            System.out.println("水印已经添加成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
}

}
0
0
分享到:
评论

相关推荐

    java给图片添加水印

    在Java编程语言中,给图片添加水印是一项常见的任务,特别是在网站开发中,为了保护版权或者标识来源,经常需要在用户上传的图片上添加特定的文字或图像水印。以下将详细讲解如何使用Java来实现这一功能。 首先,...

    JAVA处理图片 加文字水印以及灰色透明背景

    JAVA处理图片 加文字水印以及灰色透明背景,处理图片。

    Java为图片添加水印功能.rar

    Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...

    java中处理图片水印

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

    java 图片水印 改变图片大小

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

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

    总之,通过Java进行图像处理,尤其是添加水印,需要理解图像的基本概念,熟练运用`BufferedImage`和`Graphics2D`,并掌握相关的绘图技巧。这个项目对于学习Java编程和图像处理技术的学生来说,无疑是一次宝贵的实践...

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

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

    Java给图片加水印

    "Java给图片加水印"这个主题,就是关于如何利用Java技术在图片上添加标识或文字,以保护版权或者增强视觉效果。下面我们将深入探讨这个话题。 首先,我们需要了解Java中的图像处理库,如Java Advanced Imaging (JAI...

    采用java实现图片水印

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

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

    在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...

    java图片加水印工具类

    在Java编程语言中,添加水印是一项常见的任务,特别是在处理图像时,比如制作产品展示、保护版权或个性化图片。这个“java图片加水印工具类”正是为了简化这一过程而设计的,它允许开发者通过调用预定义的方法,快速...

    java数字图像水印处理

    Java数字图像水印处理是一种在图像中嵌入隐藏信息的技术,通常用于版权保护、认证或追踪图像来源。在这个基于Eclipse的项目中,开发者利用Java的强大学术和工业支持,构建了一个简单但功能完备的数字水印系统,涵盖...

    JAVA实现给图片增加图片水印或者文字水印-依赖包

    在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是视觉美化。水印可以是图片形式,也可以是文字形式。本教程将详细讲解如何使用Java来实现这一功能,重点在于介绍所需的依赖包。 首先,我们...

    java实现图片加水印.txt

    通过上述分析,我们可以看到Java实现图片加水印主要涉及到了文件输入输出、图像处理、图形绘制等多个方面的知识。掌握了这些技术,不仅能够帮助开发者完成简单的图片加水印任务,还能进一步扩展到更为复杂的图像处理...

    java实现对图片加水印

    在Java编程语言中,添加水印到图片是一项常见的任务,特别是在图像处理或网站设计中,以保护版权或增加品牌标识。下面将详细讲解如何使用Java实现这个功能。 首先,我们需要了解基本概念。水印通常是一个文字、图像...

    Java实现在图片上添加水印图片和水印文字.doc

    Java 实现图片添加水印图片和水印文字 Java 是一种广泛应用于企业级开发的编程语言,拥有强大灵活的图形处理能力。本文将详细介绍如何使用 Java 实现图片添加水印图片和水印文字,并对代码进行解释。 图片添加水印...

    Java通过POI和JXL给Excel动态添加水印

    ### Java通过POI和JXL给Excel动态添加水印 #### 概述 在实际工作中,经常需要对敏感或重要的Excel文件进行保护措施,比如添加水印。这不仅可以增加文档的专业性,还可以作为版权保护的一种手段。本文将详细介绍...

    Java添加图片水印效果.rar

    Java为图片添加水印效果,将两张图像合成为一张,添加前可预览水印,对bmp后缀的图片格式进行处理, 支持批量添加水印图像,生成水印图片。  @param buffImg 图像加水印之后的BufferedImage对象  @param ...

    用Java给图片添加文字或图像水印

    学习这个Java水印示例有助于理解如何利用Java处理图像,这对于开发图形用户界面(GUI)应用、网站设计、数据可视化等项目非常有用。同时,它也提醒我们在处理他人的作品时尊重版权,通过添加水印保护自己的创作。 ...

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

    在Java编程语言中,添加文字或图片水印是一项常见的任务,尤其在处理图像处理和多媒体应用时。...通过这种方式,你可以在Java应用程序中轻松地为图像添加文字或图片水印,增强了图像的安全性和版权保护。

Global site tag (gtag.js) - Google Analytics