Программирование на языке 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, но в момент выбора шрифта отдельные символы можно переопределить.
Вернадский
325. Жизнь замечательных людей
Документальная литература:
биографии и мемуары
рейтинг книги
Технология XSLT
Компьютеры и Интернет:
программирование
рейтинг книги
Волкодав
1. Волкодав
Фантастика:
фэнтези
героическая фантастика
рейтинг книги
Петербург - нуар. Рассказы
Проза:
современная проза
рейтинг книги
Я князь. Книга XVIII
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
рейтинг книги
Ведьмак (сборник)
Фантастика:
фэнтези
рейтинг книги
Самвел
Проза:
историческая проза
рейтинг книги
Приключения Оливера Твиста. Повести и рассказы
82. Библиотека всемирной литературы
Проза:
классическая проза
рейтинг книги
Том 5. Рудин. Повести и рассказы 1853-1857
5. Собрание сочинений в двенадцати томах
Проза:
русская классическая проза
рейтинг книги
Рыцарь Империи
3. Одержимый
Фантастика:
фэнтези
рейтинг книги
Ганнибал
3. Ганнибал Лектер
Детективы:
триллеры
рейтинг книги