Книга: Искусство программирования для Unix

Пример 6.2. SNG-файл

Пример 6.2. SNG-файл

#SNG: This is a synthetic SNG test file
#(Искусственный тестовый SNG-файл)
# Our first test is a paletted (type 3) image.
#(Первый тест - индексированное (тип 3) изображение.)
IHDR: {
 width: 16;
 height: 19;
 bitdepth: 8;
 using color: palette;
 with interlace;
}
#

# Sample bit depth chunk (Блок глубины цвета)
sBIT: {
 red: 8;
 green: 8;
 blue: 8;
}
# An example palette: three colors, one of which
# we will render transparent
#(пример палитры: три цвета, один из #которых выводится прозрачным)
PLTE: {
 (0, 0, 255)
 (255, 0, 0)
 "dark slate gray",
}
# Suggested palette (Рекомендованная палитра)
sPLT {
 name: "A random suggested palette";
 depth: 8;
 (0, 0, 255), 255, 7;
 (255, 0, 0), 255, 5;
 ( 70, 70, 70), 255, 3;
}
# The viewer will actually use this
#(программа просмотра фактически
#использует такие данные)...
IMAGE: {
 pixels base64
2222222222222222
2222222222222222
0000001111100000
0000011111110000
0000111001111000
0001110000111100
0001110000111100
0000110001111000
0000000011110000
0000000111100000
0000001111000000
0000001111000000
0000000000000000
0000000110000000
0000001111000000
0000001111000000
0000000110000000
2222222222222222
2222222222222222
}
tEXt: {
 # Ordinary text chunk (Обычный текстовый блок)
 keyword: "Title";
 text: "Sample SNG script";
}

# Test file ends here
#(Окончание тестового файла)

Цель данного инструментального средства — позволить пользователю редактировать различные непонятные типы PNG-блоков, которые вовсе не обязательно поддерживаются традиционными графическими редакторами. Вместо написания специализированного кода для анализа двоичного PNG-формата, пользователь может просто преобразовать изображение в полнотекстовое представление, отредактировать его, а затем переконвертировать его обратно. Другая потенциальная прикладная задача заключается в том, чтобы сделать изображение открытым для систем контроля версий. В большинстве систем контроля версий текстовыми файлами гораздо проще управлять, чем большими двоичными блоками, а diff-операции над SNG-файлами фактически имеют некоторые возможности для извлечения полезных сведений.

Однако выигрыш в данном случае связан не только со временем, не потраченным на написание специализированного кода для манипуляций с двоичными PNG-файлами. Код программы sng не является очень прозрачным, однако он поддерживает прозрачность в более крупных системах программ, делая все содержимое PNG-файлов воспринимаемым.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.330. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз