You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin 隐写术场景下如何读取并打印图片文件的最低有效位

Kotlin 图片最低有效位(LSB)打印实现方案

核心逻辑说明

要提取字节的最低有效位,只需对单个字节执行按位与0x01操作即可:二进制中0x01仅最后一位为1,运算结果直接对应该字节的最低位值(0或1)。

consumeArray 函数实现代码

版本1:输出连续的01位流(适合后续隐写信息提取)

private fun consumeArray(buff: ByteArray, i: Int, sz: Int) {
    // 遍历当前缓冲区的有效字节范围
    for (index in i until i + sz) {
        // 提取当前字节的最低有效位
        val lsb = buff[index].toInt() and 0x01
        // 连续打印不换行,拼接成完整位流
        print(lsb)
    }
}

版本2:逐字节打印对应最低有效位(适合调试排查问题)

private fun consumeArray(buff: ByteArray, i: Int, sz: Int) {
    for (index in i until i + sz) {
        val lsb = buff[index].toInt() and 0x01
        println("字节索引$index 最低有效位:$lsb")
    }
}

补充说明

如果仅需要提取图片像素区域的最低有效位,可以跳过PNG文件前8字节的固定签名头,以及后续的IHDR等非像素数据块,直接处理IDAT块内容即可,避免打印文件头无关位信息。


内容的提问来源于stack exchange,提问作者Europa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:36:04