У каких компонентов есть свойство canvas

У каких компонентов есть свойство canvas thumbnail

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

Примеры

    1.  
    2. Обзор
    3. Из
      данной статьи Вы узнаете о
      том, какие возможности
      есть в Delphi для создания
      приложений, использующих
      графику; как использовать
      компоненты для
      отображения картинок;
      какие средства есть в Delphi
      для оформления программы.
      Кроме того, познакомитесь
      с важным свойством Canvas,
      которое предоставляет
      доступ к графическому
      образу объекта на экране.
    4. Графические
      компоненты
    5. В
      стандартную библиотеку
      визуальных компонент 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 then

      Image1.Picture.LoadFromFile(OpenDialog1.FileName);

      Важными
      являются свойства объекта
      Center и Stretch – оба имеют
      булевский тип. Если Center
      установлено в True, то центр
      изображения будет
      совмещаться с центром
      объекта TImage. Если Stretch
      установлено в True, то
      изображение будет
      сжиматься или
      растягиваться таким
      образом, чтобы заполнить
      весь объект TImage.

      TShape
      простейшие графические
      объекты на форме типа круг,
      квадрат и т.п. Вид объекта
      указывается в свойстве Shape.
      Свойство Pen определяет
      цвет и вид границы объекта.
      Brush задает цвет и вид
      заполнения объекта. Эти
      свойства можно менять как
      во время дизайна, так и во
      время выполнения
      программы.

      TBevel – объект
      для украшения программы,
      может принимать вид рамки
      или линии. Объект
      предоставляет меньше
      возможностей по сравнению
      с TPanel, но не занимает
      ресурсов. Внешний вид
      указывается с помощью
      свойств Shape и Style.

    6. Свойство
      объектов Canvas
    7. У ряда
      объектов из библиотеки
      визуальных компонент есть
      свойство 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 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.

    8. Объект
      TPaintBox
    9. На
      странице System Палитры
      Компонент есть объект
      TPaintBox, который можно
      использовать для
      построения приложений
      типа графического
      редактора или, например, в
      качестве места построения
      графиков (если, конечно, у
      Вас нет для этого
      специальных компонент
      третьих фирм). Никаких
      ключевых свойств, кроме
      Canvas, TPaintBox не имеет,
      собственно, этот объект
      является просто канвой для
      рисования. Важно, что
      координаты указателя мыши,
      передаваемые в
      обработчики
      соответствующих событий
      (OnMouseMove и др.), являются
      относительными, т.е. это
      смещение мыши
      относительно левого
      верхнего угла объекта
      TPaintBox, а не относительно
      левого верхнего угла
      формы.
    10. Примеры

В первом
примере (проект SHAPE.DPR, рис.1)
показано, как во время выполнения
программы можно изменять свойства
объекта TShape. Изменение цвета
объекта (событие OnChange для ColorGrid1):

  • procedure
    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;

    Источник