我最近一直在做一些项目,我一直想进入隐写术。我查了几种方法来做到这一点,但其中一种我不太明白。
(image[i][j].red & ~0x3) | ((file[f] & 0x60) >> 5);
(image[i][j].green & ~0x3) | ((file[f] & 0x18) >> 3);
(image[i][j].blue & ~0x7) | ((file[f] & 0x7));
Run Code Online (Sandbox Code Playgroud)
我得到了它的一部分,比如 & ~0x3 和 & ~0x7 分别将红色/绿色的最后 2 位和蓝色的最后 3 位归零,但真正让我感兴趣的是 file[f] & 0x60, 0x18 , 和 0x7。file是一个从二进制文件中读入的无符号字符数组,image是一个 rgb 矩阵,每个组件有 3 个无符号字符,分别代表红色、绿色和蓝色。顺便说一下,这一切都在 C 中。提前致谢