开发工具:
文件大小: 33kb
下载次数: 0
上传时间: 2019-07-06
详细说明:没有积分的私聊我 看到消息百分百发给你
1、算法核心:
1、读取图片A,获得其RGB三个通道数据并转换成三个矩阵a1,a2,a3。
2、读取文件B,将其转换成比特流b。
3、遍历b,得到比特b1,b2,b3,b4,b5,b6等等,将b1代替a1第一个元素的最低位,将b2代替a2第一个元素的最低位,将b3代替a3第一个元素的最低位,将b4代替a1第二个元素的最低位,以此类推。
2、具体实现:
1、隐写:
1、使用java ImageIO读取图片,获取其RGB通道信息。
2、使用java NIO读取被嵌入的文件,将其转换为byte数组,需要特别指出的是原生方法得到是byte类型的数组,但是算法实现需要更加精细的操作,所以还需要对得到的byte数组进行进一步的转换封装,将其转换成形如10101的数组。例如,读取文件得到byte数组的第一个元素为63,需将63转换为00111111数组。并且保存好文件的长度。
3、按照算法,遍历形如10101的数组
1、如果遍历到的值为0,将矩阵对应的矩阵元素与0xfe进行与运算,将最低位置为0
2、如果遍历到的值为1,将矩阵对应的矩阵元素与0x01进行或运算,将最低位置为1
4、将步骤3得到的经过经过隐写的矩阵写为一张新的图片。
3、读取
1、使用java ImageIO读取图片,获取其RGB通道信息。
2、使用隐写步骤3得到的文件长度,遍历图片的像素矩阵,需要特别指出的是因为后续步骤还需要进行进一步的转化,所以这一步是将得到的“100100......”序列每八位封装为一个数组,最终得到一些数组集合,每个数组包含八位二进制序列。
3、将步骤2得到的数组进行转换,例如00111111应该转换为byte类型数值为63的数字,10111111转换为-63。这一步会得到一个byte类型的数组。
4、将步骤3得到的byte类型数组写入文件,需要指出的是写入的文件形式应该和隐写模块步骤二中读入的文件形式一致。
3、程序使用方法
1、安装Java8
2、使用命令行进入jar文件所在目录下,使用命令 java -jar 2016115130.jar
3、安装提示输入嵌入和被嵌入的文件名字,注意路径问题
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.