или просто ix - nCokr, iy - nRowsy - nRows. Допускаются и более сложные преобразования, однако для обработки большинства изображений достаточно и этих.

PostScript читает значения пикселов слева направо и снизу вверх и использует преобразование /для рисования пикселов в единичном квадрате пространства пользователя. Такое маленькое выражение, конечно, не может быть использовано, поэтому вначале приходится перемещать и масштабировать этот

Г7. Рисование полутоновых изображений

1037

единичный квадрат до получения нужного положения, размера и формы посредством комбинации преобразований translate и scale (а при желании и rotate). Комбинация таких преобразований обозначена на рисунке буквой Р. Тогда полное преобразование из гипотетического прямоугольника в пространстве изображения в результирующее изображение будет задаваться формулой /"'P. PostScript автоматически обрабатывает это преобразование.

Г.28. Преобразования, используемые оператором image

Рис Г.28. Преобразования, используемые оператором image

Последний аргумент, запрашиваемый оператором image, - это процедура. Обычно для чтения данных по изображению используется

{currentfile picstr readhexstring pop}

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

Оператор readhexstring читает последовательность шестнадцатеричных цифр '0*..'9' и 'A'..'F' (или 'а'.. "f'). Он игнорирует нешестнадцатеричные символы и ему не мешают промежуточные пробелы, переходы на новую строку и другие символы в файле. Данная подпрограмма проталкивает в стек строку, состоящую из полученных символов, а также логическую величину"opengl1_1122.html">⇐ Предыдущая| |Следующая ⇒