`

给图片添加水印

阅读更多
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);
             
            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给图片添加水印

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

    给图片加水印

    在IT领域,为图片添加水印是一项常见的任务,主要用于保护版权、标识出处或者增强视觉效果。VB(Visual Basic)是一种由微软开发的编程环境,它提供了简单易用的图形用户界面(GUI)创建工具和丰富的功能,使得创建...

    delphi实现给图片加水印2用ImageEn控件

    ### Delphi 实现给图片添加水印:使用 ImageEn 控件 #### 背景介绍 在 Delphi 开发环境中,实现对图像处理的需求时,经常会遇到需要为图片添加水印的情况。添加水印不仅可以保护图片版权,还能提高品牌识别度。本文...

    Flex_给图片加水印

    在IT行业中,为图片添加...综上所述,给图片添加水印在Flex中涉及ActionScript编程、图像处理、用户界面设计、样式定制、项目配置等多个环节。理解并掌握这些知识点,对于开发一个完整的Flex图片加水印应用至关重要。

    pb 给图片加水印 watermark

    标题“pb 给图片加水印 watermark”表明我们将讨论如何在PowerBuilder程序中给图片添加水印。 首先,描述中提到了两个重要的动态链接库文件:ijl15.dll和webpictools.dll。这些是外部组件,通常由第三方开发,用于...

    微信小程序用Canvas给图片加水印,拼接图片,制作名片PHelper-master.zip

    1. **给图片加水印**: 在这个项目中,开发者可能会使用`wx.createSelectorQuery()`来选取Canvas元素,然后通过`canvasContext.drawImage()`方法加载图片并将其绘制到Canvas上。接着,利用`canvasContext....

    Delphi给图片加水印

    应为项目需要,给图片加图片水印,查阅了许多资料都不理想,最后使用ImageEN 5.2.0 FullSource控件解决,效果比较满意。 案例使用delphi7+ImageEN 5.2.0 FullSource制作,里面有ImageEN控件的安装方法。

    给图片加水印 批量给图片加水印

    在IT行业中,为图片添加水印是一项常见的任务,特别是在版权保护、品牌推广或者社交媒体分享时。"给图片加水印 批量给图片加水印"这个主题涉及到图像处理技术,特别是批量处理方面,这对于摄影师、设计师或者内容...

    QT给图片加水印(pro工程+代码)

    QT给图片加水印是一种常见的图像处理操作,用于在图片上添加标识或版权信息,防止未经授权的使用。本文将深入探讨如何使用Qt框架实现这一功能,包括必要的编程知识和步骤。 首先,Qt是一个跨平台的应用程序开发框架...

    基于matlab给图片增加水印

    在图像处理领域,给图片添加水印是一种常见的需求,它能保护版权,防止未经授权的使用。MATLAB作为一款强大的数值计算和数据可视化软件,也提供了丰富的图像处理工具箱,使得在MATLAB中实现图片加水印变得相对简单。...

    使用 ImageEnView 给图片加水印,及建缩略图.docx

    在实际应用中,为了给图片添加水印,我们需要完成 `Water` 过程,这可能涉及到以下步骤: 1. 加载水印图片:使用 `TImageEnView.IO.LoadFromFile` 加载 PNG 图片,因为 PNG 支持透明度。 2. 设置水印位置:可以通过...

    批量给图片加水印软件

    1. 提高效率:手动为每一张图片添加水印是一项耗时的工作,而批量处理则可以一次性完成大量图片的水印添加。 2. 保护版权:在互联网上,图片被非法使用的可能性很大。通过批量加水印,可以为自己的作品加上版权标识...

    批量给图片加水印

    - **执行批量操作**:点击开始按钮,软件会按照设定的参数依次为每张图片添加水印。 - **保存与导出**:处理完成后,用户可以选择保存到原目录或者指定的新目录,保持原图质量或者按需压缩。 5. **安全性与版权...

    Java给图片加水印

    总之,Java通过其2D图形API提供了强大的功能,使得为图片添加水印变得相对简单。开发者可以根据实际需求调整水印的样式、位置和透明度,以达到理想的视觉效果。通过不断实践和学习,可以掌握更多关于Java图像处理的...

    java+给图片添加水印

    在Java中给图片添加水印是一种常见的保护图片的方法,特别是在需要防止图片被盗用或者滥用的情况下。为了实现这一功能,Java提供了多种方式,其中常用的是使用ImageIO和Apache的Commons Imaging库。 ImageIO是Java...

Global site tag (gtag.js) - Google Analytics