Extract binary from images (OCR or grid) and decode to text, saving to results.txt
Project description
binimage
کتابخانهای برای استخراج و رمزگشایی کد باینری از تصاویر.
پشتیبانی از سه حالت: OCR (خواندن مستقیم 0 و 1)، Grid (تحلیل شبکهای پیکسلها) و 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a3deccd62abb9da0a759c3616a0c9e5050cb27eed9355b337f1c35318dd4ee8
|
|
| MD5 |
82a1ce324da95b3879f86790212fbc54
|
|
| BLAKE2b-256 |
d1cb2cf352fcc26532b428777f725cde84fc37245b32e59e1ce328f4d3debd7f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e593aefc06dff3b38698f79c30649dca44ffb3bc5887f4d581fbc8c5ffc77fb
|
|
| MD5 |
c850a570fa1a05d70e4b340a1d84125b
|
|
| BLAKE2b-256 |
eddf0a47ec1bb2057c400a12459bd67bd62c8f7b75e54d0c44a1a6b4d0038e65
|