Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数字制水技术_Java_Image_Image Processing_Watermark - Fatal编程技术网

Java 数字制水技术

Java 数字制水技术,java,image,image-processing,watermark,Java,Image,Image Processing,Watermark,我正在尝试实现一个新的数字水印系统,这是嵌入过程 参考文件在以下链接中提供 我无法理解嵌入过程,因此plz可以帮助任何人,谢谢 专用字节[]编码_文本(字节[]图像,字节[]加法,整数偏移) { //检查数据+偏移量是否适合图像 if(addition.length+offset>image.length){ 抛出新的IllegalArgumentException(“文件不够长!”); } //循环遍历每个加法字节 对于(int i=0;i=0;--bit,++offset)//确保新的of

我正在尝试实现一个新的数字水印系统,这是嵌入过程

参考文件在以下链接中提供

我无法理解嵌入过程,因此plz可以帮助任何人,谢谢

专用字节[]编码_文本(字节[]图像,字节[]加法,整数偏移) {

//检查数据+偏移量是否适合图像
if(addition.length+offset>image.length){
抛出新的IllegalArgumentException(“文件不够长!”);
}
//循环遍历每个加法字节
对于(int i=0;i=0;--bit,++offset)//确保新的offset值通过两个循环进行
{
//将一个整数赋给b,按位空间和1移位
//当前字节的单个位
int b=(添加>>>位)&1;
//通过获取:[(上一个字节值)和0xfe]或要添加的位来分配位
//将图像中字节的最后一位更改为加法位
图像[偏移]=(字节)((图像[偏移]&0xFE)| b);
}
}
返回图像;
}

这是嵌入过程

此算法只需替换图像像素的最后一位,并替换为要在图像中隐藏它的加法字节的位

方法的输入:

  • byte[]image
    :您将隐藏数据的图像
  • byte[]addition
    :要隐藏的数据
  • int offset
    :变量将确定要隐藏的起始索引(这只是一个技巧,不需要从0索引开始隐藏,由您决定)
然后您将在
加法
数组上循环,假设数组中的第一个字节是
10
它的字节是
(00001010)
此数据将嵌入b像素中


让我们看看如何? 假设
图像[offset]=20
-->假设
offset
=0

int b = (add >>> bit) & 1;---->in the start loop will be (00001010)
                                                          ^
然后,我将用这个附加位替换
图像[offset]
中的最后一个有效位
0

image[offset]=20---------------->0000100
,当我用
0

它将是
0000100------------->20

因此,我将通过
20
在数组中设置包含
0
位信息的新
image[offset]


假设
b=1
图像[偏移量]=20

因此,当我替换中的LSB2

它等于(21),因此
21
是嵌入
1


1,2:LSB表示:最小有效位


此算法只需替换图像像素的最后一位,并将其替换为要在图像中隐藏的加法字节的位

方法的输入:

  • byte[]image
    :您将隐藏数据的图像
  • byte[]addition
    :要隐藏的数据
  • int offset
    :变量将确定要隐藏的起始索引(这只是一个技巧,不需要从0索引开始隐藏,由您决定)
然后您将在
加法
数组上循环,假设数组中的第一个字节是
10
它的字节是
(00001010)
此数据将嵌入b像素中


让我们看看如何? 假设
图像[offset]=20
-->假设
offset
=0

int b = (add >>> bit) & 1;---->in the start loop will be (00001010)
                                                          ^
然后,我将用这个附加位替换
图像[offset]
中的最后一个有效位
0

image[offset]=20---------------->0000100
,当我用
0

它将是
0000100------------->20

因此,我将通过
20
在数组中设置包含
0
位信息的新
image[offset]


假设
b=1
图像[偏移量]=20

因此,当我替换中的LSB2

它等于(21),因此
21
是嵌入
1


1,2:LSB表示:最小有效位


请使用其他服务共享参考文件。4shared需要安装可疑下载管理器。请使用其他服务共享参考文件。4shared需要安装可疑的下载管理器。
 (20)---->00010100  by the 1 it will be 00010101  
                 ^                             ^