pateon/steganography 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pateon/steganography

Composer 安装命令:

composer require pateon/steganography

包简介

Invisible anti-counterfeiting for images using LSB Steganography (PHP 8.5+). Supports Imagick and GD.

README 文档

README

PHP Version License: MIT Latest Version

A PHP 8.5+ library for invisible anti-counterfeiting of images using LSB (Least Significant Bit) Steganography. This library hides a secret message inside an image file, invisible to the human eye.

Features

  • Invisible: Modifies only the Least Significant Bits (LSB) of RGB pixel values
  • Compression: Compresses messages using Zlib before embedding
  • Unicode Support: Full support for UTF-8, including CJK characters and emoji
  • Dual Driver Support: Prioritizes Imagick, falls back to GD automatically
  • Format Support: Reads JPG, PNG, GIF, WebP, BMP as source images
  • Lossless Output: Always outputs as PNG to preserve hidden data
  • PHP 8.5+: Uses modern PHP features (typed constants, readonly properties, match expressions)
  • Composer Ready: PSR-4 autoloading, ready for integration

Requirements

  • PHP >= 8.5
  • ext-zlib (for compression)
  • ext-imagick (recommended) OR ext-gd (at least one is required)

Installation

composer require pateon/steganography

Usage

Basic Usage

use Steganography\Processor;

$processor = new Processor();

// Encode a message into an image
$image = $processor->encode('source.jpg', 'This is my secret message! 秘密訊息');
$image->save('output.png'); // MUST save as PNG (lossless)

// Decode the message from the image
$message = $processor->decode('output.png');
echo $message; // "This is my secret message! 秘密訊息"

Force Specific Adapter

$processor = new Processor();

// Force GD
$processor->setPreferredAdapter('gd');

// Force Imagick
$processor->setPreferredAdapter('imagick');

Calculate Maximum Message Size

$processor = new Processor();
$maxBytes = $processor->calculateMaxMessageSize('source.jpg');
echo "Max message size: ~{$maxBytes} bytes";

Custom Compressor

use Steganography\Processor;
use Steganography\Compressor\ZlibCompressor;

$processor = new Processor(
    compressor: new ZlibCompressor(level: 9) // Maximum compression
);

⚠️ Important Notes

  1. Output Format: Always save encoded images as PNG. JPG compression is lossy and will destroy the hidden data.

  2. Source Format: JPG, PNG, GIF, WebP, and BMP are supported as source images.

  3. Image Size: Larger images can store more data. Use calculateMaxMessageSize() to check capacity.

  4. Imagick vs GD: Imagick is preferred for better performance. GD is used as fallback.

Architecture

src/
├── Processor.php              # Main entry point
├── Compressor/
│   ├── CompressorInterface.php
│   └── ZlibCompressor.php     # Zlib compression
├── Encoder/
│   ├── EncoderInterface.php
│   └── DefaultEncoder.php     # Base64 + Binary encoding
├── Exception/
│   ├── SteganographyException.php
│   ├── ImageTooSmallException.php
│   └── DecodeException.php
├── Image/
│   ├── Image.php              # LSB steganography logic
│   ├── Color.php              # RGBA color DTO
│   └── Adapter/
│       ├── ImageAdapterInterface.php
│       ├── GdAdapter.php      # GD implementation
│       └── ImagickAdapter.php # Imagick implementation
└── Iterator/
    ├── BinaryIterator.php     # Binary data iterator
    └── RectIterator.php       # Pixel coordinate iterator

How It Works

  1. Compression: The message is compressed using Zlib
  2. Encoding: Compressed data is Base64 encoded, then converted to binary (0s and 1s)
  3. Embedding: Each pixel's RGB values have their LSB modified to store 3 bits (1 per channel)
  4. Header: A 48-bit length header is prepended to know how much data to read when decoding

License

MIT License - see LICENSE file

pateon/steganography 适用场景与选型建议

pateon/steganography 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 12 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「image」 「gd」 「imagick」 「watermark」 「steganography」 「lsb」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 pateon/steganography 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 pateon/steganography 我们能提供哪些服务?
定制开发 / 二次开发

基于 pateon/steganography 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 7
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 25
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-28