Skip to main content

Extract binary from images (OCR or grid) and decode to text, saving to results.txt

Project description

binimage

کتابخانه‌ای برای استخراج و رمزگشایی کد باینری از تصاویر.
پشتیبانی از سه حالت: OCR (خواندن مستقیم 0 و 1Grid (تحلیل شبکه‌ای پیکسل‌ها) و LSB (استخراج بیت‌های کم‌اهمیت از تصاویر طبیعی/استگانوگرافی).

تزریق (LSB Embed)

برای قراردادن متن/داده در تصویر با LSB:

CLI:

binimage in.png --mode lsb --embed --payload "سلام دنیا" --embed-out stego.png
# از فایل:
binimage in.png --mode lsb --embed --payload @message.txt --embed-out stego.png

API:

from binimage import lsb_embed

out_img = lsb_embed(
    "in.png",
    payload="سلام دنیا",
    channels="RGB",
    bit_index=0,
    step=1,
    msb_first=True,
    bits_per_byte=8,
    ensure_utf8_text=True,
)
out_img.save("stego.png")

نصب

می‌توانید کتابخانه را با یکی از روش‌های زیر نصب کنید:

pip install binimage

یا

python -m pip install binimage

استفاده

از طریق خط فرمان (CLI)

binimage path/to/image.png --mode auto --language fa

پارامترهای مهم:

  • image (اجباری): مسیر تصویر ورودی
  • --mode : حالت استخراج (auto، ocr، grid یا lsb)
  • --language : ترجیح زبان سطح‌بالا (fa یا en) تا پیش‌فرض‌های مناسب OCR/دیکد تنظیم شود
  • --ocr-lang : زبان OCR (مثلاً eng یا fas)؛ اگر تعیین شود بر --language غلبه می‌کند
  • --rows و --cols : تعداد سطر/ستون شبکه در حالت grid
  • --invert : معکوس کردن نگاشت رنگ به بیت
  • --out : مسیر فایل خروجی (پیش‌فرض results.txt)
  • --encodings : ترتیب دلخواه برای دیکد متن (مثلاً utf-8 utf-16le utf-16be latin-1)
  • --errors : نحوه‌ی برخورد با خطاهای دیکد (یکی از strict، ignore، replace)

پارامترهای حالت LSB:

  • --lsb-channels کانال‌ها برای استخراج (مثل RGB یا R)
  • --lsb-bit شماره بیت از هر کانال (۰ یعنی LSB)
  • --lsb-step نمونه‌برداری هر N مقدار یک‌بار
  • --lsb-max-bits سقف تعداد بیت استخراجی
  • --stop-at-null توقف در اولین بایت صفر قبل از دیکد متن

مثال:

# Grid نمونه
binimage ./binary_image.png --mode grid --rows 20 --cols 40 --out output.txt --encodings utf-8 utf-16le utf-16be latin-1 --errors strict

# LSB نمونه برای تصویر طبیعی (استگانو)
binimage ./photo.png --mode lsb --lsb-channels RGB --lsb-bit 0 --lsb-step 1 --stop-at-null --out output.txt

# نوشتن بیت‌های خام در فایل خروجی و سپس متن دیکد شده
binimage ./photo.png --mode lsb --include-bits --out results.txt

استفاده در پایتون (API)

from binimage import decode_image

result = decode_image(
    image_path="image.png",
    mode="auto",        # "auto" | "ocr" | "grid" | "lsb"
    language="fa",       # fa | en (پیش‌فرض‌های مناسب اعمال می‌شود)
    ocr_lang=None,        # در صورت نیاز override کنید، مثلاً "fas" یا "eng"
    rows=None,
    cols=None,
    invert=False,
    bits_per_byte=8,
    msb_first=True,
    out_file="results.txt",  # اگر نخواهید در فایل ذخیره شود: None
    encodings=("utf-8", "utf-16le", "utf-16be", "latin-1"),
    errors="strict",
)

print("Encoding:", result.encoding)
print("Decoded text:", result.text)

خروجی

پس از اجرا، متن استخراج‌شده در فایل مشخص‌شده (results.txt یا هر مسیر دلخواه) ذخیره می‌شود. اگر out_file=None بدهید، چیزی در دیسک نوشته نمی‌شود و می‌توانید result.text و result.bits را مستقیم استفاده کنید. اگر متن شما دارای BOM باشد (UTF-8 یا UTF-16)، به صورت خودکار تشخیص و به‌درستی دیکد می‌شود.

دریافت بیت‌های خام (LSB)

from binimage import decode_image

res = decode_image(
	"your_image.png",
	mode="lsb",
	lsb_channels="RGB",
	lsb_bit=0,
	lsb_step=1,
	stop_at_null=True,
	msb_first=True,
	out_file="results.txt",
	include_bits_in_output=False,
)

print(res.text) # دریافت خروجی به صورت باینری

در CLI می‌توانید بیت‌های خام را چاپ کنید:

binimage image.png --mode lsb --print-bits --out ""

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

binimage-1.6.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

binimage-1.6.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file binimage-1.6.0.tar.gz.

File metadata

  • Download URL: binimage-1.6.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for binimage-1.6.0.tar.gz
Algorithm Hash digest
SHA256 5a3deccd62abb9da0a759c3616a0c9e5050cb27eed9355b337f1c35318dd4ee8
MD5 82a1ce324da95b3879f86790212fbc54
BLAKE2b-256 d1cb2cf352fcc26532b428777f725cde84fc37245b32e59e1ce328f4d3debd7f

See more details on using hashes here.

File details

Details for the file binimage-1.6.0-py3-none-any.whl.

File metadata

  • Download URL: binimage-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for binimage-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2e593aefc06dff3b38698f79c30649dca44ffb3bc5887f4d581fbc8c5ffc77fb
MD5 c850a570fa1a05d70e4b340a1d84125b
BLAKE2b-256 eddf0a47ec1bb2057c400a12459bd67bd62c8f7b75e54d0c44a1a6b4d0038e65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page