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

为图片添加版权水印

    博客分类:
  • 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);
}
}
分享到:
评论

相关推荐

    图片加盲水印小工具2.0一款可以添加不损坏图片原信息添加看不见的水印保护图片版权软件内容防搬运必备.exe

    为解决部分用户使用其他用户资源重复上传相同信息的问题(如房产图、汽车图、商品图等),您可在用户上传图片资源前先进行全盲水印提取,若提取到水印图信息则证明该图片来自之前已有资源,并进行相应操作(如提醒...

    WaterMark一款可以给你的图片添加看不见的文字水印俗称盲水印的工具.rar

    软件界面直观简单,无需任何学习,打开就可以快速上手使用,添加肉眼看不见的水印,遇到版权问题时就可以通过这个水印来保护自身作品的版权,两种水印供大家选择,选择图片水印或者是文字水印,可以旋转角度,提取...

    图片秒加水印制作生成微信小程序源码下载免服务器域名

    大家好给大家带来一款图片加水印的微信小程序源码 该小程序拥有多种水印的添加方式 比如: 全屏水印(也就是整张图片都给加上水印透明度可以自行调整) 隐形水印(该水印是肉眼不可见但是通过PS等软件就可以看得到...

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

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

    小程序源码:图片秒加水印制作生成

    大家好给大家带来一款图片加水印的微信小程序源码 该小程序拥有多种水印的添加方式 比如: 全屏水印(也就是整张图片都给加上水印透明度可以自行调整) 隐形水印(该水印是肉眼不可见但是通过PS等软件就可以看得到...

    图片批量加水印工具,可自由设置水印

    本工具可批量给图片添加水印,界面简约,操作简单。可自由选择添加文字水印、图片水印等格式,水印的大小、位置、旋转、透明度等都可自由设置,也可以将水印平铺于图片之上,更具有特色的是设置好的水印可保存,方便...

    图像处理用图片给图片加水印,python实现专门设计用于为PNG图片批量添加图片水印

    批量处理: 一次性对指定文件夹内的所有PNG图片添加水印,极大地提高工作效率。 自定义设置: 用户可以自定义水印的位置(包括左上角、左下角、右上角、右下角和中心)和透明度,从而确保水印既符合视觉效果又不干扰...

    小程序源码:图片秒加水印制作生成-多玩法安装简单

    大家好给大家带来一款图片加水印的微信小程序源码 该小程序拥有多种水印的添加方式 比如: 全屏水印(也就是整张图片都给加上水印透明度可以自行调整) 隐形水印(该水印是肉眼不可见但是通过PS等软件就可以看得到...

    图像水印技术 版权嵌入 源码

    版权嵌入 RGB分离 图像加密 图片嵌入 其中GRAY和COLOR以及图像水印的变换,需要验证码 这个验证码是嵌入图像信息的AES加密串

    阿里巴巴泄露门使用的傅里叶变换隐藏水印(含源码)

    对于web,可以添加一个背景图片,来追踪截图者。所谓盲水印,是指人感知不到的水印,包括看不到或听不见(没错,数字盲水印也能够用于音频)。其主要应用于音像作品、数字图书等,目的是,在不破坏原始作品的情况下...

    手机上如何给图片加水印?

    在手机上为图片添加水印可以帮助我们更加有效地保护自己的版权和作品。 下面我将给大介绍一些常用的水印制作在线工具和使用方法,在线工具提供了多种水印类型、文字、图像、透明度等个性化设置,还能对批量图片进行...

    批量修改图片大小添加水印的工具

    每次旅游完都要成批的修改照片大小以便能发给朋友,照片多了改起来太麻烦,...2.批量添加自定义水印,声明自己的版权:) 3.支持水印编辑时实时预览:) 没人支持没什么动力,所以画面也不那么精美,能用就好,嘿嘿。

    png图片水印添加,LSB盲水印以及可见水印添加

    经本软件处理后的图片能在不影响外在特征及各种数据的情况下添加不可见的水印等能用于保护版权的信息。同时也能⽤本产品来提取经本软件处理过的图片中的版权信息。 使用RSA签名算法,对图片进行签名,可以保证图片...

    C#图片加版权,在图片上加阴影文字水印

    C#图片加版权,在图片上加阴影文字水印,为一幅图像文件添加格式固定的版权文字,类似于加水印的效果,打开程序后,添加一张图片,点击“添加版权信息”后,图片即输出到C:盘目录下,文件名为output.jpeg。...

    Python如何为图片添加水印

    网上有很多制作水印的工具,本帖介绍怎么使用Python-Pillow库给图片添加水印。 使用ImageMagick添加图片水印-Linux 添加文本水印 在图片右下角添加文字: from PILimport Image, ImageDraw, ImageFont # 指定要...

    微信小程序:图片秒加水印制作生成

    大家好给大家带来一款图片加水印的微信小程序源码 该小程序拥有多种水印的添加方式 比如: 全屏水印(也就是整张图片都给加上水印透明度可以自行调整) 隐形水印(该水印是肉眼不可见但是通过PS等软件就可以看得到...

Global site tag (gtag.js) - Google Analytics