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 (استخراج بیت‌های کم‌اهمیت از تصاویر طبیعی/استگانوگرافی).


نصب

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

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.5.0.tar.gz (12.1 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.5.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for binimage-1.5.0.tar.gz
Algorithm Hash digest
SHA256 855e5fb94978a77caefaabf7e159d6b0b61581d0753696a84dac4c59df267bce
MD5 e72d46ad2fcde5bf9848d869d1954ca8
BLAKE2b-256 f42db80c1c10463bd138c0e21046c32c5a1411c7dee0f04eaa3dfb1cc715a16c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: binimage-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 11.2 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a45ed0d536cbcedab382e5ec25361d60dbf0c29644a1c066c31a42144103c7ac
MD5 fa72fb4ce3bad7c56a119f0373f74c92
BLAKE2b-256 77af6504c40a737ee9f9842bdbdba62a3d560ef47e87a6b70afd3de7d9fee5d9

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