用JAVA实现数字水印

用JAVA实现数字水印

ID:27429273

大小:498.00 KB

页数:7页

时间:2018-12-03

用JAVA实现数字水印_第1页
用JAVA实现数字水印_第2页
用JAVA实现数字水印_第3页
用JAVA实现数字水印_第4页
用JAVA实现数字水印_第5页
资源描述:

《用JAVA实现数字水印》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用JAVA实现数字水印(可见)数字水印有可见不可见之分,可见的比如课件上印有学校校徽,微博发图片会水印上上传者的信息及微博logo等。用java实现可见的数字水印,草人主要是用到了java.awt包中的AlphaComposite类,当然在实现之前先介绍一下AlphaComposite类:AlphaComposite类是关于两个目标重叠的混合处理类,此类实现的特定规则是T.Porter和T.Duff合著的“CompositingDigitalImages”,SIGGRAPH84,253-259中描述的12条基本规则集。该类提供的一个getInstance的方法,其中的两个参数为rule和al

2、pha,第二个参数将由调用者设置一个alpha值,即是透明度的设置,而第一个参数则是混合方式。此类扩展了Porter和Duff定义的方程,包含一个额外的因子。AlphaComposite类的实例可以包含一个alpha值,在将该值用于混合方程之前,可以用它来修改不透明度和每个源像素的覆盖率。Porter和Duff的论文在混合方程的描述中使用了以下因子:以规则SRC_OVER为例,使用这些因子,Porter和Duff定义了12种选择混合因子Fs和Fd的方法,从而产生了12种令人满意的可视效果。在对12个指定可视效果的静态字段的描述中,给出了具有确定Fs和Fd值的方程。SRC_OVER在目标色之上

3、合成源色(Porter-DuffSourceOverDestination规则)。指定Fs=1和Fd=(1-As),因此:Ar=As+Ad*(1-As)Cr=Cs+Cd*(1-As)该类扩展后一共有24中规则,定义了9个方法,由于草人的程序中用到了方法getInstance()就对之说明一下——•详细定义:publicstaticAlphaCompositegetInstance(intrule,floatalpha)•功能:创建一个AlphaComposite对象,它具有指定的规则和用来乘源色alpha值的常量alpha值。在将源色与目标色合成前,要将源色乘以指定的alpha值。•参数:r

4、ule——合成规则,24种;alpha——将乘源色的alpha值的常量alpha值。alpha必须是范围[0.0,1.0]之内(包含边界值)的一个浮点数字。•抛出:IllegalArgumentException-如果alpha小于0.0或大于1.0,或者rule是以下规则之一:CLEAR、SRC、DST、SRC_OVER、DST_OVER、SRC_IN、DST_IN、SRC_OUT、DST_OUT、SRC_ATOP、DST_ATOP或XOR。更详细推荐AlphaCompositehttp类文档:http://download.oracle.com/technetwork/java/java

5、se/6/docs/zh/api/java/awt/AlphaComposite.html#hashCode()、CompositingDigitalImages论文:https://en.wikipedia.org/wiki/Alpha_compositing既然是图像处理,就先创建一个java2d对象1.Graphics2D g2d=image.createGraphics(); 2.//用源图像填充背景 3.g2d.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null, null); 然后为Graphics2D

6、上下文设置Composite后就可以将想要写入的文字或者图片写入源图片上AlphaCompositeac=AlphaComposite.getInstance(AlphaComposite.SRC_OVER,alpha);//为Graphics2D上下文设置Composite。Composite用于所有绘制方法中,如drawImage、//drawString、draw和fill。它指定新的像素如何在呈现过程中与图形设备上的现有像素组合。g2d.setComposite(ac);完整代码(代码中注释足够了,就不多啰嗦)1.package cumt.zry.two; 2. 3.import j

7、ava.awt.*; 1.import java.awt.image.BufferedImage; 2.import java.io.*; 3.import javax.imageio.*; 4. 5.public class Watermark2{ 6.    public Watermark2(){super();}; 7./** 8.   * 在源图片上设置水印文字 9.  */ 10.    publ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。