Conversion
Conversion
فایلهای PSD بیشتر فیلدهای باینری را به ترتیب بایتهای بزرگاند (big-endian) ذخیره میکنند. BigEndianBitConverter یک عدد صحیح ۳۲-بیتی با ترتیب بزرگاند را مستقیماً از یک آرایه بایت میخواند، برای مواردی که خودتان با بایتهای خام کار میکنید — برای مثال، از یک منبع تصویر ناشناخته.
کدگشایی مقدار ۳۲-بیتی با ترتیب بزرگاند
from aspose_psd_foss.bigendianbitconverter import BigEndianBitConverter
data = bytes([0x00, 0x00, 0x04, 0x10]) # example 4-byte big-endian field
value = BigEndianBitConverter.to_int32(data, 0)
print(f"Decoded value: {value}") # 1040to_int32(byte_array, offset) ۴ بایت را از offset میخواند و آنها را به ترتیب بایت مهمترین اول ترکیب میکند.
نکات و بهترین روشها
BigEndianBitConverterفقط در این ساختار منبع باز (FOSS)to_int32را فراهم میکند — برای مقادیر بزرگاند ۱۶-بیتی یا ۶۴-بیتی، بهصورت دستی با Python داخلیint.from_bytes(data, byteorder="big")رمزگشایی کنید.- این ابزار برای بایتهای خامی است که قبلاً بهدست آوردهاید (به Resources) — بارگذاری، ویرایش و ذخیرهسازی معمولی سند هرگز بهصورت مستقیم به آن نیاز ندارند.
مشکلات رایج
| مسئله | دلیل | رفع |
|---|---|---|
IndexError در حال فراخوانی to_int32 | آرایه بایت کمتر از ۴ بایت در دسترس دارد که از offset شروع میشود | قبل از فراخوانی، len(byte_array) >= offset + 4 را بررسی کنید |
FAQ
آیا برای ویرایش عادی سند به این نیاز دارم؟
خیر — این یک ابزار سطح پایین برای بایتهای خامی است که خودتان به دست آوردهاید. بارگذاری، ویرایش و ذخیرهسازی معمولی (به Core API) هرگز بهطور مستقیم به آن نیاز ندارد.
خلاصه API Reference
| کلاس/متد | توضیح |
|---|---|
BigEndianBitConverter.to_int32(byte_array, offset) | یک عدد صحیح ۳۲ بیتی به فرمت big-endian را رمزگشایی میکند |