Вывод внешних изображений
Вывод внешних изображений
Внешним по отношению к канве называется графическое изображение, хранящееся в отдельном файле, или содержимое другой канвы. Канва предоставляет довольно мощные средства для вывода таких изображений: мы можем изменить размеры изображения и даже вывести только его часть.
Вывести внешнее изображение на канву проще всего методом drawImage, точнее, его сокращенным форматом:
<контекст рисования>.drawImage(<графическое изображение или канва>,<горизонтальная координата>, <вертикальная координата>)
Первый параметр задает графическое изображение в виде экземпляра объекта Image или канву в виде экземпляра объекта HTMLCanvasElement. Второй и третий параметры определяют координаты точки канвы, где должен находиться верхний левый угол выводимого изображения; они задаются в пикселах в виде чисел. Метод drawImage не возвращает результата.
Вот Web-сценарий, который загружает изображение из файла someimage.jpg и вы- водит его на канву так, чтобы его верхний левый угол находился в точке [0,0], т. е. в верхнем левом углу канвы:
var imgSample = new Image();
imgSample.src = "someimage.jpg";
ctxCanvas.drawImage(imgSample, 0, 0);
Если нам нужно при выводе внешнего изображения изменить его размеры, к нашим услугам расширенный формат метода drawImage:
<контекст рисования>.drawImage(<графическое изображение или канва>,<горизонтальная координата>, <вертикальная координата><ширина>, <высота>)
Первые три параметра нам уже знакомы. Четвертый и пятый параметры задают, соответственно, ширину и высоту выводимого изображения в пикселах в виде чисел.
Вот пример Web-сценария, который выводит загруженное ранее изображение, растягивая его так, чтобы занять канву целиком:
ctxCanvas.drawImage(imgSample, 0, 0, 400, 300);
Рассмотрим теперь самый сложный случай — вырезание из внешнего изображения фрагмента и вывод его на канву с изменением размеров. Для этого применяется третий по счету формат метода drawImage:
<контекст рисования>.drawImage(<графическое изображение или канва>,<горизонтальная координата вырезаемого фрагмента>,<вертикальная координата вырезаемого фрагмента><ширина вырезаемого фрагмента>, <высота вырезаемого фрагмента>,<горизонтальная координата вывода>, <вертикальная координата вывода>,<ширина вывода>, <высота вывода>)
Первый параметр нам уже знаком и задает внешнее изображение.
Второй и третий параметры определяют координаты верхнего левого угла вырезаемого из внешнего изображения фрагмента. Они задаются относительно внешне- го изображения в пикселах в виде чисел.
Четвертый и пятый параметры определяют ширину и высоту вырезаемого из внешнего изображения фрагмента. Они также задаются относительно внешнего изображения в пикселах в виде чисел.
Шестой и седьмой параметры определяют координаты точки канвы, где должен находиться верхний левый угол выводимого фрагмента внешнего изображения. Они задаются относительно канвы в пикселах в виде чисел.
Восьмой и девятый параметры определяют ширину и высоту выводимого фрагмента внешнего изображения в пикселах в виде чисел.
Вот Web-сценарий, который вырезает из загруженного ранее изображения фрагмент с верхним левым углом в точке [20,40], шириной 40 и высотой 20 пикселов и выводит этот фрагмент на канву, растягивая его так, чтобы занять канву целиком:
ctxCanvas.drawImage(imgSample, 20, 40, 40, 20, 0, 0, 400, 300);
Все приведенные ранее примеры подразумевают, что файл, хранящий внешнее изображение, загружается очень быстро (так может случиться, если файл имеет небольшие размеры или уже находится в кэше Web-обозревателя.) Но чаще всего случается так, что файл не успевает загрузиться к тому моменту, когда начнет выполняться выводящий его на канву код, и мы получим ошибку выполнения Web- сценария. Как избежать этого?
Очень просто. Объект Image поддерживает событие onload, возникающее после окончания загрузки изображения. Данному событию соответствует одноименное свойство, которому следует присвоить функцию — обработчик этого события. Web-сценарий из листинга 22.11 иллюстрирует сказанное.
Листинг 22.11
var imgSample = new Image();
function imgOnLoad() {
ctxCanvas.drawImage(imgSample, 20, 40, 40, 20, 0, 0, 400, 300);
}
imgSample.src = "someimage.jpg";
imgSample.onload = imgOnLoad;
НА ЗАМЕТКУ
Именно так выполняется привязка обработчиков к событиям некоторых объектов Web- обозревателя — присваиванием функции-обработчика свойству, которое соответствует нужному событию. Можно ли использовать для этого методы библиотеки Ext Core, автор не проверял.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Конфигурирование внешних устройств
Конфигурирование внешних устройств Помимо виртуальных жестких дисков и программно эмулируемых компонентов, приведенных в табл. 2.1, в конфигурацию ВМ могут входить перечисленные далее устройства и компоненты (см. рис. 2.32).? Устройства чтения CD/DVD. Virtual PC 2004 предоставляет
Конфигурирование внешних устройств
Конфигурирование внешних устройств Помимо виртуальных жестких дисков и программно эмулируемых компонентов, о которых шла речь в подразделе «Архитектура виртуальной машины в VMware Workstation», в конфигурацию ВМ могут входить следующие устройства и компоненты:? устройства
Конфигурирование внешних устройств
Конфигурирование внешних устройств Помимо виртуальных жестких дисков и программно эмулируемых компонентов, приведенных в табл. 4.3, в конфигурацию ВМ могут входить следующие устройства и компоненты:? устройства чтении CD/DVD, причем Virtual PC 2004 предоставляет как возможность
Подключение внешних файлов
Подключение внешних файлов К WS-файлу можно подключать "обычные" JScript- или VBScript-сценарии, которые находятся во внешних файлах. Для этого нужно указать путь к этому внешнему файлу в атрибуте src элемента <script>.Для примера создадим файл inc.js, в который запишем
Вывод внешних изображений
Вывод внешних изображений Внешним по отношению к канве называется графическое изображение, хранящееся в отдельном файле, или содержимое другой канвы. Канва предоставляет довольно мощные средства для вывода таких изображений: мы можем изменить размеры изображения и
15.5.5. Параметры внешних программ
15.5.5. Параметры внешних программ ftp_user email-адресУказанный здесь email будет использоваться вместо пароля при анонимном доступе к ftp-серверам. dns_nameservers список IP-адресовЗначение данного параметра используется вместо того списка DNS-серверов, который определен в файле /etc/resolv.conf;
16.8. XDR: представление внешних данных
16.8. XDR: представление внешних данных В предыдущей главе мы использовали двери для вызова процедуры одного процесса из другого процесса. При этом оба процесса выполнялись на одном узле, поэтому необходимости в преобразовании данных не возникало. Однако RPC используется для
14.1. Запуск внешних программ
14.1. Запуск внешних программ Никакой язык не может использоваться в качестве «клея», если он не позволяет запускать внешние программы. В Ruby для этого есть несколько способов.Не могу не обмолвиться о том, что перед запуском внешней программы неплохо бы понять, что она
Глава 20 Подготовка изображений к печати и вывод их на бумагу
Глава 20 Подготовка изображений к печати и вывод их на бумагу Настоящая глава посвящена тому, как распечатать полученное с цифровой камеры или отсканированное изображение таким образом, чтобы оно выглядело достойно.Подготовка изображений к печатиПрежде всего следует
Конфигурирование внешних размещений
Конфигурирование внешних размещений Существующий внешний код и данные, к которым обращается сервер, могут оказаться слабым местом в безопасности, если файловая система сервера неадекватно защищена от вторжений или хорошо видна из сети. Такие внешние фрагменты могут
Обзор внешних факторов
Обзор внешних факторов Рассмотрим самые важные внешние факторы качества, стремление к которым есть центральная задача ОО-построения ПО.
Использование внешних программ
Использование внешних программ Внешние программы являются частью ОО-метода, помогая сочетать старое ПО с новым. Любой метод проектирования ПО, допускающий возможность повторного использования, должен допускать программный код, написанный на других языках. Трудно было
Подключение внешних шнуров
Подключение внешних шнуров В данном подразделе рассказывается о подключении внешних шнуров.Подключение блока питания. Чтобы компьютер заработал, ему необходимо питание. Посредником между комплектующими и сетью с переменным напряжением является блок питания, к
Загрузка внешних файлов
Загрузка внешних файлов Ранее в этой главе уже упоминалось о том, что язык ActionScript позволяет загрузить и поместить в фильм Flash внешний файл. Этим внешним файлом может быть другой фильм Shockwave/Flash, изображение в формате JPEG, видео Macromedia Flash Video или звук. Также имеется возможность