`

使用Java添加图片水印和文字水印

    博客分类:
  • java
阅读更多

方法一:

 

import  java.awt.*;  
import  java.awt.image.*;  
import  java.io.*;  
import  javax.swing.*;  
import  com.sun.image.codec.jpeg.*;  
public   class  WaterSet {  
    /** */ /**  
     * 给图片添加水印  
     *   
     * @param filePath  
     *            需要添加水印的图片的路径  
     * @param markContent  
     *            水印的文字  
     * @param markContentColor  
     *            水印文字的颜色  
     * @param qualNum  
     *            图片质量  
     * @return  
     */   
    public   boolean  createMark(String filePath, String markContent,  
            Color markContentColor, float  qualNum) {  
        ImageIcon imgIcon = new  ImageIcon(filePath);  
        Image theImg = imgIcon.getImage();  
        int  width = theImg.getWidth( null );  
        int  height = theImg.getHeight( null );  
        BufferedImage bimage = new  BufferedImage(width, height,  
                BufferedImage.TYPE_INT_RGB);  
        Graphics2D g = bimage.createGraphics();  
        g.setColor(markContentColor);  
        g.setBackground(Color.white);  
        g.drawImage(theImg, 0 ,  0 ,  null );  
        g.drawString(markContent, width / 5 , height /  5 );  // 添加水印的文字和设置水印文字出现的内容   
        g.dispose();  
        try  {  
            FileOutputStream out = new  FileOutputStream(filePath);  
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);  
            param.setQuality(qualNum, true );  
            encoder.encode(bimage, param);  
            out.close();  
        } catch  (Exception e) {  
            return   false ;  
        }  
        return   true ;  
    }  
}  

 

 

方法二:添加图片水印和文字水印两种,水印图片可以是GIF,PNG透明的文件,我一般采用的是PNG的,因为它的质量和GIF相比要高一些。

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, (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) {  
        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("F:/logo.png" ,           "F:/123.jpg" ,  0 ,  0 );  
    }  
}  

 

 

分享到:
评论

相关推荐

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

    - 使用`drawImage()`方法添加图片水印,需要指定源图像、目标坐标和缩放比例。 - 对于文字水印,可以调用`Graphics2D.drawString()`方法,传入文字和位置坐标。 3. **设置水印属性** - 可以调整字体、颜色、透明...

    采用java实现图片水印

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

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

    以下是一个简单的示例代码片段,展示如何在Java中添加文字水印: ```java import org.apache.commons.imaging.ImageReadException; import org.apache.commons.imaging.ImageWriteException; import org.apache....

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

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

    java给图片添加水印

    3. **添加图片水印**:与添加文字水印类似,但需要加载水印图片,调整其大小和位置,再进行合并。 ```java public static BufferedImage addImageWatermark(String srcPath, String watermarkImagePath, String ...

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

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

    java 图片添加水印

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

    java中处理图片水印

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

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

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

    使用java实现图片水印

    ### 使用Java实现图片水印的关键知识点 #### 一、背景介绍 在当今互联网时代,图片作为信息传递的重要载体之一,在各个领域中发挥着至关...以上就是使用Java实现图片水印的主要知识点和技术细节。希望对你有所帮助!

    java 图片水印 改变图片大小

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

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

    下面将详细介绍如何使用Java Graphics2D实现文字和图片水印,以及如何在四个角落添加水印。 首先,我们要导入必要的Java库,包括java.awt和javax.imageio: ```java import java.awt.*; import java.awt.image....

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

    本文将详细介绍如何使用 Java 实现图片添加水印图片和水印文字,并对代码进行解释。 图片添加水印图片 在 Java 中,我们可以使用 `java.awt` 包提供的类来处理图像。首先,我们需要读取原图片和水印图片,然后将...

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

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

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

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

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

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

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

    在本文中,我们将深入探讨如何使用Java编程语言为图片添加文字或图像水印。这个话题源于一个名为"Java水印.rar"的压缩包文件,它包含了一段Java源代码,用于实现这一功能。该压缩包有四个文件:RunIt.bat(运行脚本...

    java图片水印帮助类

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

    JAVA实现给图片增加图片水印或者文字水印

    总之,Java提供了解决这类问题的基础工具,而通过引入像Apache Commons Imaging这样的库,我们可以更高效、灵活地实现图片水印和文字水印的添加功能。这不仅可以用于个人项目,也可以在企业级应用中进行大规模的图片...

    图片水印添加工具类 ImageRemark.java

    图片水印添加工具类 ImageRemark.java,可以添加文字水印,图片水印,定制化参数,可以满足各种图片水印的添加

Global site tag (gtag.js) - Google Analytics