`
guosen
  • 浏览: 20088 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

JAVA添加水印

 
阅读更多

package com.wisedu.coeus.util;

 

import java.awt.AlphaComposite;   

import java.awt.Graphics2D;   

import java.awt.Image;   

import java.awt.RenderingHints;   

import java.awt.image.BufferedImage;   

import java.io.File;   

import java.io.FileOutputStream;   

import java.io.OutputStream;   

 

import javax.imageio.ImageIO;   

import javax.swing.ImageIcon;   

 

/**  

 * 图片添加水印   

 */  

public class ImageMarkLogoByIcon {   

 

    /**  

     * @param args  

     */  

    public static void main(String[] args) {   

        String srcImgPath = "F:/addLogo/example.jpg";   

        String iconPath = "F:/addLogo/logo.png";    

        String targerPath = "F:/addLogo/example_logo.png"; 

//        String targerPath2 = "d:/test/michael/img_mark_icon_rotate.jpg";   

        // 给图片添加水印   

        ImageMarkLogoByIcon.markImageByIcon(iconPath, srcImgPath, targerPath);   

        // 给图片添加水印,水印旋转-45   

//        ImageMarkLogoByIcon.markImageByIcon(iconPath, srcImgPath, targerPath2,   

//                -45);   

    }   

 

    /**  

     * 给图片添加水印  

     * @param iconPath 水印图片路径  

     * @param srcImgPath 源图片路径  

     * @param targerPath 目标图片路径  

     */  

    public static void markImageByIcon(String iconPath, String srcImgPath,   

            String targerPath) {   

        markImageByIcon(iconPath, srcImgPath, targerPath, null);   

    }   

 

    /**  

     * 给图片添加水印、可设置水印图片旋转角度  

     * @param iconPath 水印图片路径  

     * @param srcImgPath 源图片路径  

     * @param targerPath 目标图片路径  

     * @param degree 水印图片旋转角度  

     */  

    public static void markImageByIcon(String iconPath, String srcImgPath,   

            String targerPath, Integer degree) {   

        OutputStream os = null;   

        try {   

            Image srcImg = ImageIO.read(new File(srcImgPath));   

 

            BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),   

                    srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);   

 

            // 得到画笔对象   

            // Graphics g= buffImg.getGraphics();   

            Graphics2D g = buffImg.createGraphics();   

 

            // 设置对线段的锯齿状边缘处理   

            g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,   

                    RenderingHints.VALUE_INTERPOLATION_BILINEAR);   

 

            g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg   

                    .getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);   

 

            if (null != degree) {   

                // 设置水印旋转   

                g.rotate(Math.toRadians(degree),   

                        (double) buffImg.getWidth() / 2, (double) buffImg   

                                .getHeight() / 2);   

            }   

 

            // 水印图象的路径 水印一般为gif或者png的,这样可设置透明度   

            ImageIcon imgIcon = new ImageIcon(iconPath);   

 

            // 得到Image对象。   

            Image img = imgIcon.getImage();   

 

            float alpha = 0.5f; // 透明度   

            g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,   

                    alpha));   

 

            // 表示水印图片的位置   

            g.drawImage(img, 150, 300, null);   

 

            g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));   

 

            g.dispose();   

 

            os = new FileOutputStream(targerPath);   

 

            // 生成图片   

            ImageIO.write(buffImg, "JPG", os);   

 

            System.out.println("完成添加水印。。。。。。");   

        } catch (Exception e) {   

            e.printStackTrace();   

        } finally {   

            try {   

                if (null != os)   

                    os.close();   

            } catch (Exception e) {   

                e.printStackTrace();   

            }   

        }   

    }   


分享到:
评论

相关推荐

    简单的java添加水印效果

    总结起来,Java添加水印涉及图像处理基础知识,包括读取、绘制和保存图像,以及使用图形上下文进行复合操作。通过理解和实践这些知识点,开发者可以构建自己的水印系统,满足在线logo制作或其他类似需求。

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

    因为项目中考虑到添加图片版权的保护,特意看了下水印的处理...以下有两种方式:第一种是添加文字水印;第二种是添加图片水印和文字水印两种方法,水印图片可以是GIF,PNG透明的文件,我一般采用的是PNG的,因为它的...

    java操作水印的jar包

    Java操作水印的jar包主要用于在PDF、Word文档和图片上添加水印,这是一种常见的文件保护和版权声明方法。在Java编程中,处理水印涉及多个技术领域,包括IO流处理、图像处理、文档解析等。下面将详细介绍这些知识点。...

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

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

    java给图片添加水印

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

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

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

    java 图片添加水印

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

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

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

    java 添加水印、裁剪图片、比例缩小图片

    图片处理工具类,可以按原图比例缩小图片、根据原图裁剪新图片并保存、给图片添加文字水印、给图片添加图片水印。

    java调用ffmpeg 添加水印转换视频

    java调用ffmpeg添加水印并且转换视频,代码中并没有判断哪些格式支持,那些不支持,mpg,mp4,avi,wmv基本都可以(传入格式),转换为flv avi mp4起码都没问题,其它的没事过ffmpeg是开源的支持的挺多的 补充:时间算错了,...

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

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

    java 图片水印 改变图片大小

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

    java jxl 添加水印 修改编译版

    java jxl 添加水印 修改编译版,实现excel水印必备 java jxl 添加水印 修改编译版,实现excel水印必备

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

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

    Java盲水印BlindWatermark工具使用教程.pptx.pptx

    BlindWatermark的基本操作流程包括加载待处理的原始图像,选择合适的水印算法,设置水印参数,添加水印,最后保存处理后的图像。对于批量处理需求,工具还提供了批量添加水印的功能,可以大大提高工作效率。通过这些...

    java为多种文档(word ppt pdf excel)添加文本水印

    使用Free Spire.Doc for Java,我们可以方便地向Word文档添加水印。首先,你需要导入`com.spire.doc.*`相关的类。然后创建一个`Document`对象,加载待处理的Word文档。接着,创建一个`WatermarkOptions`对象,设置...

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

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

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

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

    java 生成水印图片

    在给定的代码中,addWaterMark 方法是用来添加水印图片的。该方法需要五个参数:目标图片路径、水印图片路径、水印图片距离目标图片左侧的偏移量、水印图片距离目标图片上侧的偏移量和透明度。该方法首先加载目标...

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

    java Jacob完美实现word添加图片...公司最近让搞Word文档添加水印,所有下载的文档需要添加公司印章,搞了好多天才实现,利用Jacob完美实现word添加图片水印(注意需要把dll文件放到jdk的bin目录下)。欢迎大家下载指教。

Global site tag (gtag.js) - Google Analytics