У каких компонентов есть свойство canvas
HTML5 тег <canvas> используется для отображения графики на лету при помощи скриптов (обычно JavaScript).
Тем не менее, сам по себе элемент <canvas> не имеет инструментария для рисования. Это всего лишь контейнер для графики. Чтобы в действительности что-то нарисовать в элементе <canvas>, необходимо использовать соответствующий скрипт.
Метод getContext() возвращает объект, предоставляющий методы и свойства для рисования в элементе <canvas>.
В данном справочнике приводится информация о свойствах и методах объекта getContext(“2d”), который может использоваться для вывода в элементе <canvas> текста, линий, прямоугольников, кругов и др.
Internet Explorer 9, Firefox, Opera, Chrome и Safari поддерживают элемент <canvas> и его свойства и методы. Internet Explorer 8 и более ранние версии не поддерживают элемент <canvas>.
Свойство | Описание |
---|---|
fillStyle | Устанавливает/возвращает цвет, градиент или шаблон, используемый для заливки графического объекта |
shadowBlur | Устанавливает/возвращает уровень размытости для теней |
shadowColor | Устанавливает/возвращает цвет для теней |
shadowOffsetX | Устанавливает/возвращает горизонтальное расстояние тени от фигуры |
shadowOffsetY | Устанавливает/возвращает вертикальное расстояние тени от фигуры |
strokeStyle | Устанавливает/возвращает цвет, градиент или шаблон, используемый для обводки фигуры |
Свойство | Описание |
---|---|
lineCap | Устанавливает/возвращает стиль концов нарисованной линии |
lineJoin | Устанавливает/возвращает тип угла, созданного пересечением двух линий |
lineWidth | Устанавливает/возвращает ширину текущей линии |
miterLimit | Устанавливает/возвращает максимальную длину среза |
Метод | Описание |
---|---|
clearRect() | Очищает заданную область пикселей внутри данного прямоугольника |
fillRect() | Рисует “залитый” прямоугольник |
rect() | Создает прямоугольник |
strokeRect() | Рисует прямоугольник (без заливки) |
Метод | Описание |
---|---|
arc() | Создает дугу/кривую (используется для создания окружностей или их части) |
arcTo() | Создает дугу/кривую между двумя касательными |
beginPath() | Начинает контур или сбрасывает текущий контур |
bezierCurveTo() | Создает кубическую кривую Безье |
clip() | Обрезает область любой формы и размера, находящуюся вне указанного контура |
closePath() | Замыкает контур соединяя последнюю точку с первой |
fill() | Делает заливку текущей фигуры (контура) |
isPointInPath() | Возвращает значение true, если заданная точка находится внутри текущего контура, в обратном случае возвращается значение false |
lineTo() | Добавляет новую точку контура и создает линию к этой точке от последней заданной точки |
moveTo() | Передвигает точку контура в заданные координаты не рисуя линию |
quadraticCurveTo() | Создает квадратичную кривую Безье |
stroke() | В действительности рисует определенный вами контур |
Метод | Описание |
---|---|
rotate() | Поворачивает текущий графический объект |
scale() | Изменяет масштаб текущего графического объекта |
setTransform() | Сбрасывает текущую матрицу трансформации в начальное состояние, а затем вызывает метод transform() с теми же параметрами |
transform() | Применяет заданную матрицу трансформации |
translate() | Ретранслирует позицию (0,0) в новое место |
Свойство | Описание |
---|---|
font | Устанавливает/возвращает свойства шрифта для текстового содержимого |
textAlign | Устанавливает/возвращает выравнивание для текстового содержимого |
textBaseline | Устанавливает/возвращает базовую линию, используемую при выводе текста |
Метод | Описание |
---|---|
drawImage() | Рисует изображение, содержимое другого элемента <canvas> или видео |
Свойство | Описание |
---|---|
data | Возвращает объект, содержащий данные изображения заданного объекта ImageData |
height | Возвращает высоту объекта ImageData |
width | Возвращает ширину объекта ImageData |
Метод | Описание |
---|---|
createImageData() | Создает новый, пустой объект ImageData |
getImageData() | Возвращает объект ImageData, который копирует пиксельные данные заданной прямоугольной области холста |
putImageData() | Помещает данные изображения (из заданного объекта ImageData) обратно в элемент <canvas> |
Свойство | Описание |
---|---|
globalAlpha | Устанавливает/возвращает текущее значение прозрачности или альфа-канала графического объекта |
globalCompositeOperation | Устанавливает/возвращает то, как исходное (новое) изображение нарисовано на целевом (существующем) изображении |
Другое
Метод | Описание |
---|---|
save() | Сохраняет состояние текущего контекста |
restore() | Возвращает ранее сохраненное состояние и атрибуты |
createEvent() | |
getContext() | |
toDataURL() |
Вверх Вывод изображений в canvas
Источник
КАТЕГОРИИ:
Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)
У ряда объектов из библиотеки визуальных компонент есть свойство Canvas (канва), которое предоставляет простой путь для рисования на них. Эти объекты – TBitmap, TComboBox, TDBComboBox, TDBGrid, TDBListBox, TDirectoryListBox, TDrawGrid, TFileListBox, TForm, TImage, TListBox, TOutline, TPaintBox, TPrinter, TStringGrid.
Canvas является в свою очередь объектом, объединяющим в себе поле для рисования, карандаш (Pen), кисть (Brush) и шрифт (Font). Cвойство Canvas предоставляет доступ к графическому образу объекта на экране.
Canvas обладает рядом графических методов: Draw, TextOut, Arc, Rectangle и др. Используя Canvas, Вы можете воспроизводить на форме любые графические объекты – картинки, многоугольники, текст и т.п. без использования компонент TImage,TShape и TLabel (т.е. без использования дополнительных ресурсов). Однако при этом необходимо обрабатывать событие OnPaint того объекта, на канве которого производится рисование. Рассмотрим подробнее свойства и методы объекта Canvas.
Свойства Canvas :
Brush – кисть, является объектом со своим набором свойств:
Bitmap – картинка размером строго 8×8, используется для заполнения (заливки) области на экране.
Color – цвет заливки.
Style – предопределенный стиль заливки; это свойство конкурирует со свойством Bitmap – какое свойство Вы определили последним, то и будет определять вид заливки.
Handle – данное свойство дает возможность использовать кисть в прямых вызовах процедур Windows API .
ClipRect – (только чтение) прямоугольник, на котором происходит графический вывод.
CopyMode – свойство определяет, каким образом будет происходить копирование (метод CopyRect) на данную канву изображения из другого места: один к одному, с инверсией изображения и др.
Font – шрифт, которым выводится текст (метод TextOut).
Handle – данное свойство используется для прямых вызовов Windows API.
Pen – карандаш, определяет вид линий; как и кисть (Brush) является объектом с набором свойств:
Color – цвет линии
Handle – для прямых вызовов Windows API
Mode – режим вывода: простая линия, с инвертированием, с
выполнением исключающего или и др.
Style – стиль вывода: линия, пунктир и др.
Width – ширина линии в точках
PenPos – текущая позиция карандаша, карандаш рекомендуется перемещать с помощью метода MoveTo, а не прямой установкой данного свойства.
Pixels – двухмерный массив элементов изображения (pixel), с его помощью Вы получаете доступ к каждой отдельной точке изображения (см. пример к данному уроку).
Методы Canvas:
Методы для рисования простейшей графики – Arc, Chord, LineTo, Pie, Polygon, PolyLine, Rectangle, RoundRect. При прорисовке линий в этих методах используются карандаш (Pen) канвы, а для заполнения внутренних областей – кисть (Brush).
Методы для вывода картинок на канву – Draw и StretchDraw, В качестве параметров указываются прямоугольник и графический объект для вывода (это может быть TBitmap, TIcon или TMetafile).
StretchDraw отличается тем, что растягивает или сжимает картинку так, чтобы она заполнила весь указанный прямоугольник (см. пример к данному уроку).
Методы для вывода текста – TextOut и TextRect. При выводе текста используется шрифт (Font) канвы. При использовании TextRect текст выводится только внутри указанного прямоугольника. Длину и высоту текста можно узнать с помощью функций TextWidth и TextHeight.
Рассмотрим два примера использования графических компонентов.
Дата добавления: 2014-01-07; Просмотров: 700; Нарушение авторских прав?
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
Рекомендуемые страницы:
Читайте также:
Источник
HTML5 тег <canvas> используется для отображения графики на лету при помощи скриптов (обычно JavaScript).
Тем не менее, сам по себе элемент <canvas> не имеет инструментария для рисования. Это всего лишь контейнер для графики. Чтобы в действительности что-то нарисовать в элементе <canvas>, необходимо использовать соответствующий скрипт.
Метод getContext() возвращает объект, предоставляющий методы и свойства для рисования в элементе <canvas>.
В данном справочнике приводится информация о свойствах и методах объекта getContext(“2d”), который может использоваться для вывода в элементе <canvas> текста, линий, прямоугольников, кругов и др.
Internet Explorer 9, Firefox, Opera, Chrome и Safari поддерживают элемент <canvas> и его свойства и методы. Internet Explorer 8 и более ранние версии не поддерживают элемент <canvas>.
Цвета, стили, тени¶
Свойства:
fillStyle
Устанавливает/возвращает цвет, градиент или шаблон, используемый для заливки графического объекта
shadowBlur
Устанавливает/возвращает уровень размытости для теней
shadowColor
Устанавливает/возвращает цвет для теней
shadowOffsetX
Устанавливает/возвращает горизонтальное расстояние тени от фигуры
shadowOffsetY
Устанавливает/возвращает вертикальное расстояние тени от фигуры
strokeStyle
Устанавливает/возвращает цвет, градиент или шаблон, используемый для обводки фигуры
Методы:
addColorStop()
Определяет цвета и позицию остановки в объекте градиента
createLinearGradient()
Создает линейный градиент (для использования с содержимым элемента <canvas>)
createPattern()
Размножает заданный элемент в заданном направлении
createRadialGradient()
Создает радиальный/круговой градиент (для использования на содержимом элемента <canvas>)
Стили линий¶
Свойства:
lineCap
Устанавливает/возвращает стиль концов нарисованной линии
lineJoin
Устанавливает/возвращает тип угла, созданного пересечением двух линий
lineWidth
Устанавливает/возвращает ширину текущей линии
miterLimit
Устанавливает/возвращает максимальную длину среза
Прямоугольники¶
Методы:
clearRect()
Очищает заданную область пикселей внутри данного прямоугольника
fillRect()
Рисует “залитый” прямоугольник
rect()
Создает прямоугольник
strokeRect()
Рисует прямоугольник (без заливки)
Контуры¶
Методы:
arc()
Создает дугу/кривую (используется для создания окружностей или их части)
arcTo()
Создает дугу/кривую между двумя касательными
beginPath()
Начинает контур или сбрасывает текущий контур
bezierCurveTo()
Создает кубическую кривую Безье
clip()
Обрезает область любой формы и размера, находящуюся вне указанного контура
closePath()
Замыкает контур соединяя последнюю точку с первой
fill()
Делает заливку текущей фигуры (контура)
isPointInPath()
Возвращает значение true, если заданная точка находится внутри текущего контура, в обратном случае возвращается значение false
lineTo()
Добавляет новую точку контура и создает линию к этой точке от последней заданной точки
moveTo()
Передвигает точку контура в заданные координаты не рисуя линию
quadraticCurveTo()
Создает квадратичную кривую Безье
stroke()
В действительности рисует определенный вами контур
Трансформации¶
Методы:
rotate()
Поворачивает текущий графический объект
scale()
Изменяет масштаб текущего графического объекта
setTransform()
Сбрасывает текущую матрицу трансформации в начальное состояние, а затем вызывает метод transform() с теми же параметрами
transform()
Применяет заданную матрицу трансформации
translate()
Ретранслирует позицию (0,0) в новое место
Текст¶
Свойства:
font
Устанавливает/возвращает свойства шрифта для текстового содержимого
textAlign
Устанавливает/возвращает выравнивание для текстового содержимого
textBaseline
Устанавливает/возвращает базовую линию, используемую при выводе текста
Методы:
fillText()
Рисует текст с заливкой
measureText()
Возвращает объект, содержащий ширину заданного текста
strokeText()
Рисует текст без заливки
Вывод изображений¶
Методы:
drawImage()
Рисует изображение, содержимое другого элемента <canvas> или видео
Пиксельные манипуляции¶
Свойства:
data
Возвращает объект, содержащий данные изображения заданного объекта ImageData
height
Возвращает высоту объекта ImageData
width
Возвращает ширину объекта ImageData
Методы:
createImageData()
Создает новый, пустой объект ImageData
getImageData()
Возвращает объект ImageData, который копирует пиксельные данные заданной прямоугольной области холста
putImageData()
Помещает данные изображения (из заданного объекта ImageData) обратно в элемент <canvas>
Компоновка¶
Свойства:
globalAlpha
Устанавливает/возвращает текущее значение прозрачности или альфа-канала графического объекта
globalCompositeOperation
Устанавливает/возвращает то, как исходное (новое) изображение нарисовано на целевом (существующем) изображении
Другое¶
Методы:
save()
Сохраняет состояние текущего контекста
restore()
Возвращает ранее сохраненное состояние и атрибуты
createEvent()
getContext()
Возвращает контекст рисования на холсте
toDataURL()
Возвращает URI данных, содержащий представление изображения в формате, заданном параметром типа
Источник
Содержание
Обзор
Графические
компоненты
Свойство
объектов Canvas
Объект TPaintBox
Примеры
- Обзор
- Из
данной статьи Вы узнаете о
том, какие возможности
есть в Delphi для создания
приложений, использующих
графику; как использовать
компоненты для
отображения картинок;
какие средства есть в Delphi
для оформления программы.
Кроме того, познакомитесь
с важным свойством Canvas,
которое предоставляет
доступ к графическому
образу объекта на экране. - Графические
компоненты - В
стандартную библиотеку
визуальных компонент Delphi
входит несколько объектов,
с помощью которых можно
придать своей программе
совершенно оригинальный
вид. Это – TImage (TDBImage), TShape,
TBevel.TImage
позволяет поместить
графическое изображение в
любое место на форме. Этот
объект очень прост в
использовании – выберите
его на странице Additional и
поместите в нужное место
формы. Собственно картинку
можно загрузить во время
дизайна в редакторе
свойства Picture (Инспектор
Объектов). Картинка должна
храниться в файле в
формате BMP (bitmap),
WMF (Windows Meta File) или ICO (icon). (TDBImage
отображает картинку,
хранящуюся в таблице в
поле типа BLOB. При этом
доступен только формат BMP.)Как
известно, форматов
хранения изображений
гораздо больше трех
вышеназванных (например,
наиболее известны PCX, GIF, TIFF,
JPEG). Для включения в
программу изображений в
этих форматах нужно либо
перевести их в формат BMP,
либо найти библиотеки
третьих фирм, в которых
есть аналог TImage,
“понимающий” данные
форматы (есть как VBX
объекты, так и “родные”
объекты для Delphi).При
проектировании следует
помнить, что изображение,
помещенное на форму во
время дизайна, включается
в файл .DPR и затем
прикомпилируется к EXE
файлу. Поэтому такой EXE
файл может получиться
достаточно большой. Как
альтернативу можно
рассмотреть загрузку
картинки во время
выполнения программы, для
этого у свойства Picture
(которое является объектом
со своим набором свойств и
методов) есть специальный
метод LoadFromFile. Это делается,
например, так:if
OpenDialog1.Execute thenImage1.Picture.LoadFromFile(OpenDialog1.FileName);
Важными
являются свойства объекта
Center и Stretch – оба имеют
булевский тип. Если Center
установлено в True, то центр
изображения будет
совмещаться с центром
объекта TImage. Если Stretch
установлено в True, то
изображение будет
сжиматься или
растягиваться таким
образом, чтобы заполнить
весь объект TImage.TShape –
простейшие графические
объекты на форме типа круг,
квадрат и т.п. Вид объекта
указывается в свойстве Shape.
Свойство Pen определяет
цвет и вид границы объекта.
Brush задает цвет и вид
заполнения объекта. Эти
свойства можно менять как
во время дизайна, так и во
время выполнения
программы.TBevel – объект
для украшения программы,
может принимать вид рамки
или линии. Объект
предоставляет меньше
возможностей по сравнению
с TPanel, но не занимает
ресурсов. Внешний вид
указывается с помощью
свойств Shape и Style. - Свойство
объектов Canvas - У ряда
объектов из библиотеки
визуальных компонент есть
свойство Canvas (канва),
которое предоставляет
простой путь для рисования
на них. Эти объекты – TBitmap,
TComboBox, TDBComboBox, TDBGrid, TDBListBox,
TDirectoryListBox, TDrawGrid, TFileListBox,
TForm, TImage, TListBox, TOutline, TPaintBox,
TPrinter, TStringGrid. Canvas является в
свою очередь объектом,
объединяющим в себе поле
для рисования, карандаш
(Pen), кисть (Brush) и шрифт (Font).
Canvas обладает также рядом
графических методов : Draw,
TextOut, Arc, Rectangle и др.
Используя Canvas, Вы можете
воспроизводить на форме
любые графические объекты
– картинки, многоугольники,
текст и т.п. без
использования компонент
TImage,TShape и TLabel (т.е. без
использования
дополнительных ресурсов),
однако при этом Вы должны
обрабатывать событие OnPaint
того объекта, на канве
которого Вы рисуете.
Рассмотрим подробнее
свойства и методы объекта
Canvas.Свойства Canvas :
Brush –кисть,
является объектом со своим
набором свойств:Bitmap –
картинка размером строго
8×8, используется для
заполнения (заливки)
области на экране.Color – цвет
заливки.Style –
предопределенный стиль
заливки; это свойство
конкурирует со свойством
Bitmap – какое свойство Вы
определили последним, то и
будет определять вид
заливки.Handle – данное
свойство дает возможность
использовать кисть в
прямых вызовах процедур
Windows API .ClipRect – (только
чтение) прямоугольник, на
котором происходит
графический вывод.CopyMode –
свойство определяет, каким
образом будет происходить
копирование (метод CopyRect) на
данную канву изображения
из другого места: один к
одному, с инверсией
изображения и др.Font – шрифт,
которым выводится текст
(метод TextOut).Handle – данное
свойство используется для
прямых вызовов Windows API.Pen –
карандаш, определяет вид
линий; как и кисть (Brush)
является объектом с
набором свойств:Color – цвет
линииHandle – для
прямых вызовов Windows APIMode – режим
вывода: простая линия, с
инвертированием, свыполнением
исключающего или и др.Style – стиль
вывода: линия, пунктир и др.Width – ширина
линии в точкахPenPos – текущая
позиция карандаша,
карандаш рекомендуется
перемещать с помощью
метода MoveTo, а не прямой
установкой данного
свойства.Pixels –
двухмерный массив
элементов изображения
(pixel), с его помощью Вы
получаете доступ к каждой
отдельной точке
изображения (см. пример к
данному уроку).Методы
Canvas:Методы
для рисования простейшей
графики – Arc,
Chord, LineTo, Pie,
Polygon, PolyLine, Rectangle,
RoundRect. При
прорисовке линий в этих
методах используются
карандаш (Pen) канвы, а для
заполнения внутренних
областей – кисть (Brush).Методы
для вывода картинок на
канву – Draw и StretchDraw, В
качестве параметров
указываются прямоугольник
и графический объект для
вывода (это может быть TBitmap,
TIcon или TMetafile). StretchDraw
отличается
тем, что растягивает или
сжимает картинку так,
чтобы она заполнила весь
указанный прямоугольник
(см. пример к данному
уроку).Методы
для вывода текста – TextOut и TextRect. При
выводе текста
используется шрифт (Font)
канвы. При использовании TextRect текст
выводится только внутри
указанного
прямоугольника. Длину и
высоту текста можно узнать
с помощью функций TextWidth и TextHeight. - Объект
TPaintBox - На
странице System Палитры
Компонент есть объект
TPaintBox, который можно
использовать для
построения приложений
типа графического
редактора или, например, в
качестве места построения
графиков (если, конечно, у
Вас нет для этого
специальных компонент
третьих фирм). Никаких
ключевых свойств, кроме
Canvas, TPaintBox не имеет,
собственно, этот объект
является просто канвой для
рисования. Важно, что
координаты указателя мыши,
передаваемые в
обработчики
соответствующих событий
(OnMouseMove и др.), являются
относительными, т.е. это
смещение мыши
относительно левого
верхнего угла объекта
TPaintBox, а не относительно
левого верхнего угла
формы. - Примеры
В первом
примере (проект SHAPE.DPR, рис.1)
показано, как во время выполнения
программы можно изменять свойства
объекта TShape. Изменение цвета
объекта (событие OnChange для ColorGrid1):
TForm1.ColorGrid1Change(Sender: TObject);
begin
Shape1.Brush.Color:=ColorGrid1.ForeGroundColor;
end;
Во втором
примере (проект PIXELS.DPR, рис.2)
показано, как осуществить доступ к
отдельной точке на изображении (на
канве). По нажатию кнопки “Fill” всем
точкам изображения присваивается
свой цвет:
procedure TForm1.Button1Click(Sender:
TObject);
var
i, j : Longint;
begin
Button1.Enabled:=False;
with Canvas do
for i:=1 to Width do begin
Application.ProcessMessages;
for j:=1 to Height do
Pixels[i,j]:=i*j;
end;
Button1.Enabled:=True;
end;
В третьей
программе (проект DRAW.DPR, рис.3)
приведен пример использования
методов, выводящих изображение – Draw и StretchDraw:
Прорисовка
изображений происходит в
обработчике события OnPaint для формы:
procedure TForm1.FormPaint(Sender:
TObject);
begin
with Canvas do begin
Draw(0,0, Image1.Picture.BitMap);
StretchDraw(Rect(250,0,350,50),Image1.Picture.BitMap)
end;
end;
Источник