Jump to content

БРДМ

Чередованное растровое изображение IFF "ILBM"
Расширение имени файла
.iff, .lbm
Тип интернет-СМИ изображение/x-ilbm
Разработано Электронное искусство
Первоначальный выпуск 14 января 1985 г.
(39 лет назад)
( 1985-01-14 )
Тип формата Форматы файлов изображений
Содержится Формат файла обмена
Стандартный EA IFF 85: Стандарт формата обмена [1] [2] [3]
Открытый формат ? Исходный код, являющийся общественным достоянием

Чередованное растровое изображение ( ILBM ) — это формат файла изображения, соответствующий стандарту Interchange File Format (IFF). Формат зародился на платформе Amiga , а в IBM-совместимых системах файлы этого формата или связанного с ним формата PBM (Planar Bitmap) обычно встречаются в играх конца 1980-х и начала 1990-х годов, которые либо были портами Amiga , либо имели разработанные графические ресурсы. на машинах Amiga. [ нужна ссылка ]

Характерной особенностью формата является то, что он хранит растровые изображения в виде чередующихся битовых плоскостей , что и дало формату его название; это отражает способ, которым графическое оборудование Amiga изначально считывает графические данные из памяти. Packbits — простая форма сжатия , позволяющая сделать файлы ILBM более компактными. [4]

На Amiga эти файлы не связаны с конкретным расширением файла , хотя, когда они начали использоваться в системах ПК, где расширения используются систематически, они использовали расширение .lbm или иногда расширение .pbm . [ нужна ссылка ]

Формат файла

[ редактировать ]

ILBM — это реализация формата файла IFF , состоящая из ряда последовательных фрагментов, порядок которых может в некоторой степени меняться. Каждый фрагмент имеет разные функции и имеет один и тот же базовый формат. Это означает, что программе не нужно читать или декодировать каждый фрагмент файла, а только те, с которыми она хочет иметь дело или те, которые она может понять. [4]

Файлы ILBM обычно содержат достаточно информации, чтобы их можно было отобразить с помощью программы редактирования изображений, включая размеры изображения, палитру и данные пикселей. Некоторые файлы были разработаны для использования в качестве палитр для программ рисования (данные пикселей оставлены пустыми) или для объединения с другим изображением. Это делает их гораздо более гибкими, но и более сложными, чем другие форматы, такие как BMP. [ нужна ссылка ]

Для ILBM фрагмент BMHD (заголовок битовой карты) и любые другие «важные» фрагменты должны располагаться перед фрагментом BODY . Любые фрагменты, появляющиеся после BODY, считаются «лишними», и многие программы оставляют их непрочитанными и неизмененными. [4]

Тип Имя Описание
ФУРСС идентификатор фрагмента "ФОРМА"
UINT32BE lenChunk Длина данных фрагмента в байтах. Не включает байт заполнения. Будет равен размеру файла минус восемь байт (это поле и chunkID в расчет не входят)
ФУРСС идентификатор формата «ИЛБМ» или «ПБМ»
БАЙТ[ленЧанк - 12] содержание Фактические данные фрагмента, состоящего из других подблоков ниже.
БАЙТ подушечка Необязательный байт заполнения, присутствует только в том случае, если lenChunk не кратно 2.

BMHD: заголовок растрового изображения

[ редактировать ]

Чанк BMHD определяет, как должно отображаться изображение, и обычно является первым часком внутри FORM . Он определяет не только высоту/ширину изображения, но и то, где оно отображается на экране, как отображать его при различных разрешениях экрана и сжимается ли изображение. Содержимое этого фрагмента следующее: [4]

Тип Имя Описание
UINT16BE ширина Ширина изображения, в пикселях
UINT16BE высота Высота изображения, в пикселях
INT16BE xOrigin Где на экране в пикселях находится верхний левый угол изображения. Значение обычно равно 0,0, если изображение не является частью большего изображения или не полноэкранным.
INT16BE yOrigin
UINT8 numPlanes Количество плоскостей в растровом изображении; 1 для монохромного режима, 4 для 16 цветов, 8 для 256 цветов или 0, если имеется только карта цветов и нет данных изображения. (т. е. этот файл представляет собой просто карту цветов.)
UINT8 маска 1 = замаскированный, 2 = прозрачный цвет, 3 = лассо (для MacPaint). Данные маски не считаются битовой плоскостью.
UINT8 сжатие Если 0, то без сжатия. Если 1, то данные изображения сжимаются по протоколу RLE. Если 2 "Вертикальных РЛЭ" из Deluxe Paint для Atari ST. Теоретически возможны и другие значения, представляющие другие методы сжатия.
UINT8 площадка1 Игнорировать при чтении, при записи установить значение 0 для совместимости в будущем.
UINT16BE трансклир Прозрачный цвет, полезен только тогда, когда mask >= 2
UINT8 xAspect Пиксельный аспект, соотношение ширины:высоты; используется для отображения изображения на экране с различными разрешениями 320x200, 5:6 или 10:11.
UINT8 yАспект
INT16BE ширина страницы Размер экрана, на котором будет отображаться изображение, в пикселях, обычно 320×200.
INT16BE страницаВысота

ТЕЛО: данные изображения.

[ редактировать ]

Чанк BODY обычно является последним чаном в файле. [4] и самый большой [ нужна ссылка ] .

В файлах ILBM фрагмент BODY хранит фактические данные изображения в виде чередующихся битовых плоскостей (и необязательной маски) по строкам. Сначала появляются битовые плоскости от 1 до n, а затем плоскость маски. Если изображение несжато, каждая строка будет состоять из (width + 15) / 16 16-битные значения (т.е. один бит на пиксель, округленный до ближайшего числа, кратного 16 битам). Если оно сжимается, то каждая строка сжимается индивидуально и при сжатии всегда имеет длину, кратную 16 битам. [4]

В файлах PBM фрагмент BODY проще, поскольку в несжатом виде это просто непрерывный поток байтов, содержащий данные изображения. [ нужна ссылка ]

Если изображение сжато, каждая строка данных (но не каждая битовая плоскость) сжимается индивидуально, включая данные маски, если они присутствуют. Сжатие представляет собой разновидность сжатия RLE с использованием флагов. Его можно расшифровать следующим образом: [4]

  • Продолжайте цикл, пока не получим [Окончательная длина] данных в байтах (окончательная длина рассчитывается на основе размера изображения).
  • Пока [Длина распакованных данных] < [Окончательная длина]:
    1. Прочитать байт [значение]
    2. Если [Значение] > 128, то:
      • Прочитайте следующий байт и выведите его (257 - [Значение]) раз.
      • Переместитесь на 2 байта вперед и вернитесь к шагу 1.
    3. Иначе, если [Значение] < 128, то:
      • Прочитайте и выведите следующие [значение + 1] байт.
      • Переместиться вперед на [значение + 2] байта и вернуться к шагу 1.
    4. Иначе [Значение] = 128, выйти из цикла (прекратить распаковку)

Для процедуры сжатия лучше всего закодировать повторный запуск размером 2 байта как повторный запуск, за исключением случаев, когда ему предшествует и за ним следует литеральный запуск, и в этом случае лучше всего объединить три литеральных запуска в один литеральный запуск. Всегда кодируйте повторы >3 байтов при повторных запусках. [4]

CAMG: режим Amiga

[ редактировать ]

Чанк CAMG предназначен специально для компьютера Commodore Amiga. Он хранит ДЛИННЫЙ «режим области просмотра». Это позволяет вам указать режимы отображения Amiga, такие как «двойное игровое поле» и «удерживать и изменять». Неудивительно, что это редкость за пределами игр Amiga. [ нужна ссылка ]

Тип Имя Описание
UINT32BE режим просмотра битовые флаги; напрямую интерпретируется оборудованием Amiga

Если вам нужно преобразовать или отобразить файлы, которые могут содержать значимые фрагменты CAMG, см. «Примечания по работе с файлами ILBM» ниже.

CMAP: Палитра

[ редактировать ]

Блок CMAP содержит палитру изображения и состоит из 3-байтовых значений RGB для каждого используемого цвета. Каждый байт находится в диапазоне от 0 до 255 включительно. Кусок 3 × numColours длиной в байтах. Количество цветов в палитре составит 2 ^ numBitplanes. Этот фрагмент не является обязательным, и если его нет, будет использоваться палитра по умолчанию. Возможно иметь меньше записей, чем ожидалось (например, 7 цветов для 4-плоскостного растрового изображения «16 цветов»). Помните, что если оно имеет нечетное количество цветов, согласно спецификации IFF, фрагмент будет дополнен одним байт, чтобы его длина была четной, но байт заполнения не включается в поле длины фрагмента. [4]

CRNG: Цветовой диапазон

[ редактировать ]

Блок цветового диапазона является «нестандартным». Он используется программой Deluxe Paint от Electronic Arts для идентификации непрерывного диапазона регистров цвета или «диапазона оттенков» и циклического изменения цвета. может быть ноль или более фрагментов CRNG В файле ILBM , но все они должны располагаться перед фрагментом BODY . Deluxe Paint обычно записывает 4 фрагмента CRNG в ILBM, когда пользователь просит его «Сохранить изображение». [4]

Тип Имя Описание
INT16BE прокладка 0x0000
INT16BE ставка Скорость цветового цикла. Единицы измерения таковы, что скорость 60 шагов в секунду представляется как 2. 14 = 16384. Более низкие скорости можно получить путем линейного масштабирования: для 30 шагов в секунду скорость = 8192.
INT16BE флаги Флаги, управляющие цикличностью цветов в палитре. Если бит 0 равен 1, цвета должны циклически изменяться, в противном случае этот диапазон регистров цветов неактивен и не должен иметь никакого эффекта. Если бит 1 равен 0, цвета циклически перемещаются вверх, т. е. каждый цвет перемещается на следующую индексную позицию в карте цветов, а самый верхний цвет в диапазоне перемещается вниз на самую нижнюю позицию. Если бит1 равен 1, цвета циклически меняются в противоположном направлении. Циклически должны меняться только те цвета, которые находятся между нижним и верхним значениями на карте цветов.
UINT8 низкий Индекс первой записи в карте цветов, которая является частью этого диапазона.
UINT8 высокий Индекс последней записи в карте цветов, которая является частью этого диапазона.

CCRT: циклическое изменение цвета

[ редактировать ]

Программа Commodore Graphicraft использует CCRT для диапазона и синхронизации цветов . Этот чанк содержит структуру CycleInfo. Как и CRNG, это нестандартный чанк. [4]

Тип Имя Описание
INT16BE направление Направление цикла: 0=нет цикла, 1=вперед, -1=назад.
UINT8 низкий выбран наименьший регистр цвета
UINT8 высокий выбран наивысший регистр цвета
INT32BE задержкасек Секунды между сменой цветов
INT32BE delayuS Микросекунды между сменой цветов (добавляется к DelaySec, чтобы получить общее время задержки)
INT16BE прокладка 0x0000

Данные аналогичны фрагменту CRNG . Программа, вероятно, будет использовать только один из этих двух методов выражения данных цветового цикла. Вы можете написать оба, если хотите передать эту информацию как в DeluxePaint, так и в Graphicraft. [4]

DEST: объединение битовых плоскостей

[ редактировать ]

Необязательное свойство DEST — это способ управления тем, как разбросать ноль или более исходных битовых плоскостей в более глубокое целевое изображение. Некоторые читатели могут игнорировать DEST. [4]

Тип Имя Описание
UINT8 numPlanes Количество битпланов в исходном изображении
UINT8 площадка1 неиспользованный; используйте 0 для согласованности
UINT16BE самолетВыбрать Как выбрать самолеты, чтобы разбросать их по месту назначения
UINT16BE самолетВкл.Выкл. Данные по умолчанию для выбора плоскости
UINT16BE самолетМаска Выбирает, в каких битовых плоскостях хранить

Число битов глубины младшего порядка в planePick, planeOnOff и planeMask однозначно соответствует битовым плоскостям назначения. Бит 0 с битовой плоскостью 0 и т. д. Любые биты более высокого порядка следует игнорировать. [4]

Биты «1» в planePick означают «поместить следующую исходную битовую плоскость в эту битовую плоскость», поэтому количество битов «1» должно равняться numPlanes. Биты «0» означают «поместить соответствующий бит из planeOnOff в эту битовую плоскость». [4]

Биты в шлюзе planeMask, записывающие в битовую плоскость назначения: биты «1» означают «запись в эту битовую плоскость», а биты «0» означают «оставить эту битовую плоскость в покое». Обычный случай (без фрагмента DEST ) эквивалентен planePick = planeMask = (2 ^ numPlanes) - 1. [4]

Помните, что номера цветов формируются пикселями в целевом растровом изображении (глубина плоскостей глубины), а не в исходном растровом изображении (глубина плоскостей numPlanes). [4]

ЗАХВАТ: Точка доступа

[ редактировать ]

Дополнительный фрагмент GRAB находит «дескриптор» или «горячую точку» изображения относительно его верхнего левого угла, например, при использовании в качестве курсора мыши или «кисти». Это необязательно. [4]

Тип Имя Описание
INT16BE х Координата X горячей точки в пикселях относительно верхнего левого угла изображения.
INT16BE и Координата Y горячей точки в пикселях относительно верхнего левого угла изображения.

SPRT: Z-порядок

[ редактировать ]

Кусок SPRT указывает, что изображение должно быть спрайтом. Таким образом, он должен иметь плоскость маски или прозрачный цвет и не должен быть полноэкранным. Как это обрабатывается, зависит от программы, использующей изображение. Единственные данные, хранящиеся здесь, — это порядок спрайтов, используемый многими программами для размещения спрайта на переднем плане (спрайт порядка 1 появляется позади спрайта порядка 0 и т. д.). Это необязательно. [4]

Тип Имя Описание
UINT16BE заказ Z-порядок изображения (0 находится ближе всего к переднему плану, большие числа находятся дальше/позади)

КРОШЕЧНЫЙ: Миниатюра

[ редактировать ]

Чанк TINY содержит небольшое изображение предварительного просмотра для различных графических программ, включая Deluxe Paint. Он сжат и по формату аналогичен фрагменту BODY . [ нужна ссылка ]

Тип Имя Описание
UINT16BE ширина Ширина миниатюры, в пикселях
UINT16BE высота Высота миниатюры, в пикселях
БАЙТ[] данные Пиксельные данные, хранящиеся точно так же, как фрагмент BODY . Используйте точно такой же алгоритм, заменяя ширину и высоту из фрагмента TINY вместо значений, взятых из фрагмента BMHD .

Примечания по работе с ILBM

[ редактировать ]

Цветные карты

[ редактировать ]

Иногда файл ILBM содержит только карту цветов и не содержит данных изображения. Часто используется для хранения палитры цветов, которые можно применять к изображению отдельно. В этом случае чанк BODY должен быть пустым, а поле numPlanes в чанк BMHD будет равно 0. [4]

Глубокие изображения

[ редактировать ]

Некоторые файлы ILBM содержат информацию об «истинных цветах», а не об индексированных цветах. Эти так называемые файлы «глубоких изображений» не имеют фрагмента CMAP и обычно имеют 24 или 32 битовых плоскости. В стандартном порядке битовых плоскостей первым будет располагаться младший бит красного компонента: [4]

R0 R1 R2 R3 R4 R5 R6 R7 G0 G1 G2 G3 G4 G5 G6 G7 B0 B1 B2 B3 B4 B5 B6 B7

Если есть 32-битные плоскости, последние 8 битовых плоскостей будут альфа-каналом:

R0 R1...R7 G0...G7 B0...B6 B7 A0 A1 A2 A3 A4 A5 A6 A7

Изображение, не содержащее цветовой карты и состоящее только из 8 битовых плоскостей, может быть изображением в оттенках серого:

И0 И1 И2 И3 И4 И5 И6 И7

Экстра полубрайт

[ редактировать ]

Если файл ILBM содержит фрагмент CAMG, в котором установлен бит 7 (т. е. 0x80 в шестнадцатеричном формате). Предполагается, что файл будет использовать режим EHB (Extra Half-Brite) набора микросхем Amiga. В карте цветов будет не более 32 записей, а в изображении будет 6 битовых плоскостей. Наиболее значимую битовую плоскость следует рассматривать как флаг, если она не установлена, используйте младшие 5 битов в качестве индекса в карте цветов, как обычно. Когда флаг установлен; используйте младшие 5 бит в качестве индекса в цветовой карте, но фактический цвет, который будет использоваться, должен быть вдвое ярче, чего можно добиться, сместив компоненты RGB цвета на один бит вправо. Альтернативно, создайте карту цветов с 64 записями и скопируйте нижние 32 записи в верхнюю половину, преобразуя их в половинную яркость; затем используйте все 6 битовых плоскостей в качестве индекса цвета. [4]

Изображения PBM не могут существовать в дополнительном полубритом режиме. [ нужна ссылка ]

Удерживать и изменять

[ редактировать ]

Если файл ILBM содержит фрагмент CAMG, в котором установлен бит 11 (т. е. 0x800 в шестнадцатеричном формате), файл предполагает использовать режим HAM (Hold-And-Modify) набора микросхем Amiga. В формате HAM6 карта цветов будет иметь до 16 записей, а изображение будет иметь 6 (или, возможно, 5 битовых плоскостей). В формате HAM8 карта цветов будет иметь до 64 записей, а изображение будет иметь 8 (или, возможно, 7 битовых плоскостей). [4]

Последние две битовые плоскости (если нечетное количество битовых плоскостей предполагает дополнительную битовую плоскость, которая всегда равна 0) являются флагами управления, которые указывают, как использовать первые 4 (или 6) битовых плоскостей. [4]

Флаги управления Описание
00 Используйте битовые плоскости 0–3 (или 0–5) в качестве индекса карты цветов, как обычно.
10 Используйте цвет предыдущего пикселя, но замените синий компонент битами из битовых плоскостей 0–3 (или 0–5).
01 Используйте цвет предыдущего пикселя, но замените красный компонент битами из битовых плоскостей 0–3 (или 0–5).
11 Используйте цвет предыдущего пикселя, но замените зеленый компонент битами из битовых плоскостей 0–3 (или 0–5).

Если первый пиксель строки сканирования является пикселем модификации, измените и используйте цвет границы изображения. [4]

Обратите внимание: при использовании 4 битов для изменения цветового компонента вам следует использовать 4 бита в верхних 4 битах компонента И в нижних 4 битах (во избежание уменьшения общей цветовой гаммы). При использовании 6 бит это менее важно, но вы все равно можете поместить 2 старших бита битов модификации в два младших бита компонента цвета. [4]

Изображения PBM не могут существовать в режиме удержания и изменения. [ нужна ссылка ]

Большинство утилит, работающих с файлами ILBM и PBM, устарели, например MacPaint или Deluxe Paint . IrfanView позволяет просматривать файлы, бесплатен для некоммерческого использования и может работать под Linux. [ нужна ссылка ] Netpbm может конвертировать изображения из ILBM в собственный PPM. формат [5] и обратно. [6] вдохновленный краской Роскошный GrafX2, Графический редактор пиксельной графики может загружать и сохранять файлы ILBM, но его количество ограничено максимум 256 цветами, поэтому изображения HAM или 24-битные ILBM не будут отображать все цвета. ImageMagick и GraphicsMagick также могут отображать и преобразовывать изображения ILBM, если ilbmtoppm и ppmtoilbm установлены утилиты из Netpbm.

Примечания

[ редактировать ]

В серии игр Commander Keen Dreams сжатые отдельные изображения ILBM используются для титульных экранов, но игра не считывает большую часть фрагментов ILBM. Это связано с тем, что изображения были отредактированы в DeluxePaint, а затем импортированы непосредственно в файлы игры. [ нужна ссылка ]

См. также

[ редактировать ]
  1. ^ Джерри Моррисон (14 января 1985 г.). «EA IFF 85: Стандарт для файлов формата обмена» . Электронное искусство . Проверено 6 марта 2014 г.
  2. ^ Джерри Моррисон (17 января 1986 г.). " "ILBM" Чередованное растровое изображение IFF" . Электронное искусство . Архивировано из оригинала 13 июня 2014 г. Проверено 6 марта 2014 г.
  3. ^ Джеймс Д. Мюррей; Уильям ванРайпер (апрель 1996 г.). Энциклопедия форматов графических файлов, второе издание . О'Рейли . ISBN  1-56592-161-5 . Проверено 27 февраля 2014 г.
  4. ^ Jump up to: а б с д и ж г час я дж к л м н тот п д р с т в v В х и С «ILBM IFF с чередующимся растровым изображением» . 8 июня 2012 года . Проверено 30 июля 2018 г.
  5. ^ Джеф Посканцер; Инго Вилкен (12 ноября 2014 г.). "илбмтоппм" . Проверено 13 июня 2019 г.
  6. ^ Джеф Посканцер; Инго Вилкен (28 июня 2015 г.). "ппмтоилбм" . Проверено 13 июня 2019 г.
[ редактировать ]
  • PNG2ILBM Преобразует файлы PNG в формат ILBM и ACBM. Он может конвертировать любой PNG, включая альфа-каналы и/или 16-битную глубину каждого канала. Он поддерживает передискретизацию, квантование, сглаживание, сохранение или переопределение регистра цвета на любых битовых плоскостях от 1 до 8, включая Extra-HalfBrite и Hold And Modify.
  • Graphics Workshop 1.1Y середины 90-х годов может конвертировать все варианты файлов ILBM; он поддерживает множество других форматов файлов изображений. Он устарел, но по-прежнему работает даже в Windows 10 при работе в режиме совместимости с Windows XP. Существует также более новая коммерческая версия, известная как Graphics Workshop Professional, с гораздо более современным пользовательским интерфейсом (похоже, середины 00-х годов), который, однако, также устарел по сегодняшним стандартам.
  • Ultimate Paint может читать, записывать и отображать анимацию цветового цикла палитры.
  • nconvert от XnView — это бесплатный и актуальный конвертер командной строки.
  • Image Converter Plus — это программа, которая конвертирует файлы ILBM в любое количество форматов. Хотя полная версия не бесплатна, в демо-версии добавлен водяной знак, который можно удалить.
  • Paint Shop Pro 7.04 и другие более старые версии PSP могут читать и записывать ILBM, но могут читать только файлы PBM. PSP7 заслуживает особого упоминания, так как в условно-бесплатной версии есть ошибка, которая позволяет пропустить механизм завершения оценки, просто открыв файл (т.е. измените ярлык, чтобы файл всегда открывался, и вас это не будет беспокоить).
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1c25a95ddcdeb6539a20b0f73f4ff0b6__1715685720
URL1:https://arc.ask3.ru/arc/aa/1c/b6/1c25a95ddcdeb6539a20b0f73f4ff0b6.html
Заголовок, (Title) документа по адресу, URL1:
ILBM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)