Программирование на языке Ruby
Шрифт:
Рис. 15.3.
Рассмотрим эту программу подробнее. Сначала мы создаем «пустое» изображение методом ImageList.new, а потом вызываем для возвращенного объекта метод new_image. Можно считать, что мы получили «чистый холст» заданного размера (500x500 пикселей).
Для удобства определим несколько цветов с понятными именами, например
Затем мы создаем объект рисования
Далее вызывается метод
После каждого обращения к
Лично меня обращения вида
Но методы RMagick записываются, скорее, в виде:
Впрочем, эта идиома достаточно распространена, особенно в программах рисования и графических интерфейсах. И в классической объектно-ориентированной идеологии это вполне оправданно: фигура знает, как нарисовать себя, а стало быть, должна иметь метод
Но, возможно, вас не мучает вопрос, от имени какого объекта следует вызывать метод. Тем лучше!..
Покончив с сеткой, мы переходим к рисованию фигур. Метод
У каждого графического объекта есть еще несколько методов. Взгляните на этот «сцепленный» вызов:
Это что-то вроде пера, которое рисует черными чернилами линию толщиной в один пиксель. Цвет штриха часто имеет значение, особенно если мы хотим закрасить фигуру.
Конечно, у каждой из трех этих фигур есть еще метод
API рисования содержит также методы для настройки полупрозрачности, пространственных преобразований и многого другого. Есть методы для анализа, рисования и манипулирования текстовыми строками. Существует даже специальный RVG API (Ruby Vector Graphics — векторная графика в Ruby), совместимый с рекомендацией консорциума W3C по масштабируемой векторной графике (SVG).
Мы не можем привести здесь документацию по всем этим бесчисленным возможностям. Дополнительную информацию вы можете найти на сайте http://rmagick.rubyforge.org.
15.4. Создание документов в формате PDF с помощью библиотеки PDF::Writer
Библиотека
15.4.1. Основные концепции и приемы
Одна из серьезных проблем, встающих перед любым дизайнером документов, - текстовые шрифты. Библиотека
• Times-Roman
• Helvetica
• Courier
• ZapfDingbats
• Symbol
Если шрифт не указан, по умолчанию предполагается Helvetica. При выборе шрифта можно создать таблицу замены символов, которая позволяет имитировать символы, не имеющие графического начертания или отсутствующие в кодовой странице. В шрифтах Times-Roman, Helvetica и Courier по 315 печатаемых символов (из них у 149 есть предопределенные байтовые коды); в шрифте Symbol — 190 символов (у 189 есть предопределенные коды), а в шрифте ZapfDingbats — 202 символа (всем соответствуют коды). Шрифты представлены в кодировке Adobe, но в момент выбора шрифта отдельные символы можно переопределить.
Китайская, японская, тайская кухни
Дом и Семья:
кулинария
рейтинг книги
Рыцарь из ниоткуда. Сборник
Сварог
Фантастика:
фэнтези
попаданцы
рейтинг книги
Тень мачехи
Любовные романы:
современные любовные романы
рейтинг книги
Сёгун
Азиатская сага
Приключения:
исторические приключения
прочие приключения
рейтинг книги
Моя жена меня слишком балует
Веб-новеллы и ранобэ
Фантастика:
ранобэ
рейтинг книги
100 знаменитых отечественных художников
Документальная литература:
биографии и мемуары
рейтинг книги
Тьма в бутылке
3. Карл Мёрк и отдел «Q»
Детективы:
полицейские детективы
рейтинг книги
Война и наказание: Как Россия уничтожала Украину
Документальная литература:
прочая документальная литература
публицистика
рейтинг книги
Досье Дрездена. Книги 1 - 15
Досье Дрездена
Фантастика:
фэнтези
ужасы и мистика
рейтинг книги
Ошибки богов. Тетралогия
Ошибки богов
Фантастика:
фэнтези
рейтинг книги
Собрание сочинений. Том 45
Научно-образовательная:
философия
рейтинг книги
Притчи человечества
Религия и эзотерика:
религия
рейтинг книги
Россия распятая (Книга 1)
Проза:
русская классическая проза
рейтинг книги