`
wuzijingaip
  • 浏览: 329972 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 图片水印

阅读更多
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
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
     *            --x坐标
     * @param y
     *            --y坐标
     * @param alpha
     *           --透明度     
     */
    public final static void pressImage(String pressImg, String targetImg,
            int x, int y,float alpha) {
        try {
            //目标文件
        float Alpha=alpha;
            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);
            Graphics2D 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.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
               Alpha));           
            g.drawImage(src_biao, (wideth - wideth_biao) / 2,
                        (height - height_biao) / 2, 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 color, int fontSize, int x,
            int y,float alpha) {
        try {
        float Alpha=alpha;
            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);
            Graphics2D g = image.createGraphics();
            
            g.drawImage(src, 0, 0, wideth, height, null);
            g.setColor(Color.RED);
            g.setFont(new Font(fontName, fontStyle, fontSize));
            g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
               Alpha)); 
            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:/media/pic/book_jinghua.gif", "C:/media/pic/123.jpg", 180, 60,0.5f);//img
//        pressText("C:/media/pic/0007025494.jpg", "C:/media/pic/123.jpg","隶书",36,36,36, 300, 400,0.6f);//text
        System.out.print("添加成功");
    }
}


分享到:
评论

相关推荐

    java 图片水印 改变图片大小

    总结来说,Java提供了丰富的API来处理图片水印和大小改变,而Struts2则提供了强大的Web开发支持。结合这两者,我们可以构建出高效、灵活的图片处理服务。理解并熟练掌握这些技术,对于提升Java Web开发能力大有裨益...

    java图片水印效果

    java图片水印效果java图片水印效果

    java图片水印

    Java图片水印技术是将特定的文字、图案或者logo等元素以半透明或全透明的方式叠加在原图上,以此来实现对图片的标识或保护。这项技术广泛应用于各种场景,如品牌宣传、版权保护、社交媒体分享等。在Java中实现图片...

    java中处理图片水印

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

    dct-watermark-master.zip_Java 图片水印_数字水印_水印_水印 拷贝_水印检测

    Java图片水印技术是软件开发中的一个重要领域,主要用于在图像上添加不可见或可见的标记,以实现版权保护、防止非法拷贝以及进行水印检测。在这个“dct-watermark-master.zip”压缩包中,我们可以预见到包含了一个...

    java图片水印帮助类

    java图片添加水印帮助类,在图片上加文字水印、加图片水印!

    Java添加水印(图片水印,文字水印)

    第二种是添加图片水印和文字水印两种方法,水印图片可以是GIF,PNG透明的文件,我一般采用的是PNG的,因为它的质量和GIF相比要高一些; 适用人群:Java开发者 使用场景:版权信息标注 目标:可以直接拿来用

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

    本知识点主要探讨如何在Java中实现自适应图片大小的水印功能,以及遇到图片过小时的处理策略。 首先,我们需要理解水印的基本概念。水印是在图像或文档上添加的一种视觉标记,它可以是文字、图像或者图形,用于表明...

    采用java实现图片水印

    本篇文章将详细探讨如何使用Java实现图片水印的添加,以及相关的知识点。 首先,我们需要了解Java中的图像处理库。Java标准库提供了`java.awt`和`javax.imageio`包,它们包含了处理图像的基本功能。`java.awt`包中...

    java图片加水印(适应铺满)

    开发一个项目,需要用到图片加水印的功能,这里考虑使用后台加水印,在上传的时候或者回显到页面时候,取图片文件的流数据,进行加水印在返回流数据就行了,非常简单,不懂可以问我

    java图片水印文字水印

    * @param targetImg 目标图片 * @param fontName 字体名称 * @param fontStyle 字体样式 * @param color 字体颜色 * @param fontSize 字体大小 * @param x 修正值 * @param y 修正值 * @param alpha ...

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

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

    Java图片加水印,支持旋转和透明度设置

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

    JAVA图片水印开发案例详解

    【JAVA图片水印开发】 在Java Web开发中,图片水印是一项常见需求,它可以用于保护版权或增加信息。本文将深入讲解如何使用Java实现图片水印,包括单文字水印、单图片水印、多文字水印以及多图片水印的开发。 ### ...

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

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

    使用java实现图片水印

    ### 使用Java实现图片水印的关键知识点 #### 一、背景介绍 在当今互联网时代,图片作为信息传递的重要载体之一,在各个领域中发挥着至关重要的作用。为了保护图片版权或者增加品牌标识度,很多网站和应用会选择为...

    java 生成水印图片

    Java 生成水印图片技术详解 Java 生成水印图片是指在 Java 程序中将水印图片添加到目标图片上的一种技术。水印图片是指在图片上添加的一种透明的图片,以达到保护图片的所有权和确认图片的来源。 在 Java 中,生成...

    java操作wordpdf图片生成图片水印

    总的来说,Java通过Apache POI和PDFBox等库,为开发者提供了强大的工具来操作Word和PDF文档,并生成图片水印。这不仅可以提高工作效率,也能有效地保护和标记文档内容。通过深入学习和实践,开发者可以掌握这些技能...

    java给图片添加水印

    2. **创建水印工具类**:创建一个名为`WatermarkUtils`的Java类,包含添加文字水印和图片水印的方法。 - **添加文字水印**:首先读取原始图片,然后创建一个含有文字的透明图像(水印),设置合适的字体、颜色、...

    java 图片添加水印

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

Global site tag (gtag.js) - Google Analytics