「java数字水印」java加水印速度快的方法

博主:adminadmin 2023-03-17 03:12:07 581

本篇文章给大家谈谈java数字水印,以及java加水印速度快的方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA 数字水印 小程序(给图片打上水印或检测水印),求发个源码谢谢

package com.aspectj;

import java.awt.Color;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import javax.swing.ImageIcon;

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGEncodeParam;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**

 * @author Administrator

 * 

 *         TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板

 * 

 *         添加水印, filePath 源图片路径 含图片名, watermark 水印图片路径 savePath

 *         为你添加水印后的图片保存路径文件夹 words 要添加的文字

 */

// 添加水印,filePath 源图片路径, watermark 水印图片路径

public class Mark {

private static int wid = 0;

private static int het = 0;

public static boolean createMark(String filePath, String watermark,

String words, String savePath) {

ImageIcon imgIcon = new ImageIcon(filePath);

Image theImg = imgIcon.getImage();

ImageIcon waterIcon = new ImageIcon(watermark);

Image waterImg = waterIcon.getImage();

// /////////////////////////////////////////////////////////////////////

File f = new File(filePath);

String picname = f.getName();// 取得图片名

if (watermark != null  !watermark.equals("")) {// 当水印图标为空时

ImageIcon markIcon = new ImageIcon(watermark); // 要添加的水印图标

Image markImg = markIcon.getImage();

wid = markImg.getWidth(null); // 水印图标宽度

het = markImg.getHeight(null); // 水印图标高度

}

// ////////////////////////////////////////////////////////////////////

int width = theImg.getWidth(null); // 源图片宽度

int height = theImg.getHeight(null); // 源图片高度

if (savePath.equals(""))

savePath = filePath;// 如果未指定保存路径则保存回原路径

else

savePath = savePath + "指定保存文件夹时,拼接出保存路径";

BufferedImage bimage = new BufferedImage(width, height,

BufferedImage.TYPE_INT_RGB);

Graphics2D g = bimage.createGraphics();

g.setColor(Color.red); // 设置颜色

g.setBackground(Color.white);

g.drawImage(theImg, 0, 0, null);

g.drawImage(waterImg, width - wid + 5, height - het + 5, null); // 添加图标中间两个数字参数

// 是设定位置

g.drawString(words, width - 120, height - 10); // 添加文字

try {

FileOutputStream out = new FileOutputStream(savePath);

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);

param.setQuality(50f, true); // 图片质量

encoder.encode(bimage, param);

out.close();

} catch (Exception e) {

e.printStackTrace();

System.out.println("===========水印失败");

return false;

} finally {

System.gc();// 清理 垃圾对象

}

System.out.println("===========水印成功");

return true;

}

// /测试主程序

public static void main(String[] args) {

createMark("dcc451da81cb39dbfa76de3ad2160924ab183023.jpg", "u=4038692558,3024950167fm=21gp=0.jpg", "aas", "");

}

}

检测水印很难做到,但是加上水印还是比较简单的

如何对word文件数字水印算法 java

通过对WORD页面描述机制的分析,提出了一种适用于WORD文 档保护的数字水印算法.修改文本块中不同字符的字体颜色值,将水印以正弦波的特征形式嵌入文本中

Java中如何实现数字水印

直接在图片上画呗,导入一张背景图片,在背景图片上画一个水印

用graphics g,也就是frame的paint还是draw方法就可以实现

java实现数字水印,不可见

数字水印的不可见性

数字水印的不可见性就是数字水印嵌入到媒体中后通过人的感知系统是察觉不到的,对于图像数字水印来说就是嵌入水印的图像和原始图像看起来是一样的。

数字水印的鲁棒性

数字水印的鲁棒性是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持部分完整性并能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、数/模与模/数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等。对于图像数字水印来说,就是嵌入水印的图像在经过另存、拉伸、扭曲等操作后任然能够提取水印。

JAVA数字水印数组下标越界异常: 1024怎么办

全部异常信息都不舍得复制

就这部分,谁知道啊……

就这里有违和感……

int[] oPixels = new int[3 * oWidth * oHeight];

int[] wPixels = new int[wWidth * wHeight];

为什么不一样

关于java数字水印和java加水印速度快的方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。