Conversion
Conversion
Файлы PSD хранят большинство бинарных полей в порядке байтов big-endian. BigEndianBitConverter считывает 32-битное целое число в формате big-endian непосредственно из массива байтов, для случаев, когда вы работаете с необработанными байтами сами — например, из нераспознанного ресурса изображения.
Декодирование 32-битного значения Big-Endian
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) читает 4 байта, начиная с offset, и объединяет их, начиная с самого значимого байта.
Советы и лучшие практики
BigEndianBitConverterпредоставляетto_int32только в этой FOSS-сборке — для 16-битных или 64-битных значений big-endian декодируйте вручную с помощью встроенного в Pythonint.from_bytes(data, byteorder="big").- Эта утилита предназначена для необработанных байтов, которые вы уже получили (см Resources) — обычная загрузка, редактирование и сохранение документов никогда не требуют её напрямую.
Распространённые проблемы
| Проблема | Причина | Исправление |
|---|---|---|
IndexError вызывает to_int32 | В массиве байтов доступно менее 4 байтов, начиная с offset | Проверьте len(byte_array) >= offset + 4 перед вызовом |
FAQ
Нужен ли он для обычного редактирования документов?
Нет — это низкоуровневая утилита для необработанных байтов, которые вы получили самостоятельно. Обычная загрузка, редактирование и сохранение (см Core API).
API Reference Сводка
| Класс/Метод | Описание: |
|---|---|
BigEndianBitConverter.to_int32(byte_array, offset) | Декодирует 32-битное целое число в формате big-endian |