INNER CODE UNIT · C++

result

7thSamurai/steganography · src/image.cpp:28

    int result = stbi_write_png(path.c_str(), width, height, 4, image.get(), width * 4);

    return result != 0;
}

void Image::encode(const std::uint8_t *data, std::size_t size, EncodingLevel level, std::size_t offset) {
    auto image = this->image.get() + offset;

    if (level == EncodingLevel::Low) {
        for (auto i = 0; i < size; i++, image += 8) {
            image[0] = (image[0] & ~0b1) | ((data[i] >> 0) & 0b1);
            image[1] = (image[1] & ~0b1) | ((data[i] >> 1) & 0b1);
            image[2] = (image[2] & ~0b1) | ((data[i] >> 2) & 0b1);
            image[3] = (image[3] & ~0b1) | ((data[i] >> 3) & 0b1);
            image[4] = (image[4] & ~0b1) | ((data[i] >> 4) & 0b1);
            image[5] = (image[5] & ~0b1) | ((data[i] >> 5) & 0b1);
            image[6] = (image[6] & ~0b1) | ((data[i] >> 6) & 0b1);
            image[7] = (image[7] & ~0b1) | ((data[i] >> 7) & 0b1);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…