CanvasRenderingContext2D
interface CanvasRenderingContext2D {
globalAlpha: number;
globalCompositeOperation: GlobalCompositeOperation;
drawImage(image: CanvasImageSource, dx: number, dy: number): void;
drawImage(
image: CanvasImageSource,
dx: number,
dy: number,
dw: number,
dh: number,
): void;
drawImage(
image: CanvasImageSource,
sx: number,
sy: number,
sw: number,
sh: number,
dx: number,
dy: number,
dw: number,
dh: number,
): void;
beginPath(): void;
clip(fillRule?: CanvasFillRule): void;
clip(path: Path2D, fillRule?: CanvasFillRule): void;
fill(fillRule?: CanvasFillRule): void;
fill(path: Path2D, fillRule?: CanvasFillRule): void;
isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
isPointInPath(
path: Path2D,
x: number,
y: number,
fillRule?: CanvasFillRule,
): boolean;
isPointInStroke(x: number, y: number): boolean;
isPointInStroke(path: Path2D, x: number, y: number): boolean;
stroke(): void;
stroke(path: Path2D): void;
fillStyle: string | CanvasGradient | CanvasPattern;
strokeStyle: string | CanvasGradient | CanvasPattern;
createConicGradient(
startAngle: number,
x: number,
y: number,
): CanvasGradient;
createLinearGradient(
x0: number,
y0: number,
x1: number,
y1: number,
): CanvasGradient;
createPattern(
image: CanvasImageSource,
repetition: null | string,
): null | CanvasPattern;
createRadialGradient(
x0: number,
y0: number,
r0: number,
x1: number,
y1: number,
r1: number,
): CanvasGradient;
filter: string;
createImageData(
sw: number,
sh: number,
settings?: ImageDataSettings,
): ImageData;
createImageData(imagedata: ImageData): ImageData;
getImageData(
sx: number,
sy: number,
sw: number,
sh: number,
settings?: ImageDataSettings,
): ImageData;
putImageData(imagedata: ImageData, dx: number, dy: number): void;
putImageData(
imagedata: ImageData,
dx: number,
dy: number,
dirtyX: number,
dirtyY: number,
dirtyWidth: number,
dirtyHeight: number,
): void;
imageSmoothingEnabled: boolean;
imageSmoothingQuality: ImageSmoothingQuality;
arc(
x: number,
y: number,
radius: number,
startAngle: number,
endAngle: number,
counterclockwise?: boolean,
): void;
arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
bezierCurveTo(
cp1x: number,
cp1y: number,
cp2x: number,
cp2y: number,
x: number,
y: number,
): void;
closePath(): void;
ellipse(
x: number,
y: number,
radiusX: number,
radiusY: number,
rotation: number,
startAngle: number,
endAngle: number,
counterclockwise?: boolean,
): void;
lineTo(x: number, y: number): void;
moveTo(x: number, y: number): void;
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
rect(x: number, y: number, w: number, h: number): void;
roundRect(
x: number,
y: number,
w: number,
h: number,
radii?: number | DOMPointInit | (number | DOMPointInit)[],
): void;
roundRect(
x: number,
y: number,
w: number,
h: number,
radii?: number | DOMPointInit | Iterable<number | DOMPointInit, any, any>,
): void;
lineCap: CanvasLineCap;
lineDashOffset: number;
lineJoin: CanvasLineJoin;
lineWidth: number;
miterLimit: number;
getLineDash(): number[];
setLineDash(segments: number[]): void;
setLineDash(segments: Iterable<number>): void;
clearRect(x: number, y: number, w: number, h: number): void;
fillRect(x: number, y: number, w: number, h: number): void;
strokeRect(x: number, y: number, w: number, h: number): void;
canvas: HTMLCanvasElement;
getContextAttributes(): CanvasRenderingContext2DSettings;
shadowBlur: number;
shadowColor: string;
shadowOffsetX: number;
shadowOffsetY: number;
isContextLost(): boolean;
reset(): void;
restore(): void;
save(): void;
fillText(text: string, x: number, y: number, maxWidth?: number): void;
measureText(text: string): TextMetrics;
strokeText(text: string, x: number, y: number, maxWidth?: number): void;
direction: CanvasDirection;
font: string;
fontKerning: CanvasFontKerning;
fontStretch: CanvasFontStretch;
fontVariantCaps: CanvasFontVariantCaps;
letterSpacing: string;
textAlign: CanvasTextAlign;
textBaseline: CanvasTextBaseline;
textRendering: CanvasTextRendering;
wordSpacing: string;
getTransform(): DOMMatrix;
resetTransform(): void;
rotate(angle: number): void;
scale(x: number, y: number): void;
setTransform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void;
setTransform(transform?: DOMMatrix2DInit): void;
transform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void;
translate(x: number, y: number): void;
drawFocusIfNeeded(element: Element): void;
drawFocusIfNeeded(path: Path2D, element: Element): void;
}
globalAlpha: number;
globalCompositeOperation: GlobalCompositeOperation;
drawImage(image: CanvasImageSource, dx: number, dy: number): void;
drawImage(
image: CanvasImageSource,
dx: number,
dy: number,
dw: number,
dh: number,
): void;
drawImage(
image: CanvasImageSource,
sx: number,
sy: number,
sw: number,
sh: number,
dx: number,
dy: number,
dw: number,
dh: number,
): void;
beginPath(): void;
clip(fillRule?: CanvasFillRule): void;
clip(path: Path2D, fillRule?: CanvasFillRule): void;
fill(fillRule?: CanvasFillRule): void;
fill(path: Path2D, fillRule?: CanvasFillRule): void;
isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
isPointInPath(
path: Path2D,
x: number,
y: number,
fillRule?: CanvasFillRule,
): boolean;
isPointInStroke(x: number, y: number): boolean;
isPointInStroke(path: Path2D, x: number, y: number): boolean;
stroke(): void;
stroke(path: Path2D): void;
fillStyle: string | CanvasGradient | CanvasPattern;
strokeStyle: string | CanvasGradient | CanvasPattern;
createConicGradient(
startAngle: number,
x: number,
y: number,
): CanvasGradient;
createLinearGradient(
x0: number,
y0: number,
x1: number,
y1: number,
): CanvasGradient;
createPattern(
image: CanvasImageSource,
repetition: null | string,
): null | CanvasPattern;
createRadialGradient(
x0: number,
y0: number,
r0: number,
x1: number,
y1: number,
r1: number,
): CanvasGradient;
filter: string;
createImageData(
sw: number,
sh: number,
settings?: ImageDataSettings,
): ImageData;
createImageData(imagedata: ImageData): ImageData;
getImageData(
sx: number,
sy: number,
sw: number,
sh: number,
settings?: ImageDataSettings,
): ImageData;
putImageData(imagedata: ImageData, dx: number, dy: number): void;
putImageData(
imagedata: ImageData,
dx: number,
dy: number,
dirtyX: number,
dirtyY: number,
dirtyWidth: number,
dirtyHeight: number,
): void;
imageSmoothingEnabled: boolean;
imageSmoothingQuality: ImageSmoothingQuality;
arc(
x: number,
y: number,
radius: number,
startAngle: number,
endAngle: number,
counterclockwise?: boolean,
): void;
arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
bezierCurveTo(
cp1x: number,
cp1y: number,
cp2x: number,
cp2y: number,
x: number,
y: number,
): void;
closePath(): void;
ellipse(
x: number,
y: number,
radiusX: number,
radiusY: number,
rotation: number,
startAngle: number,
endAngle: number,
counterclockwise?: boolean,
): void;
lineTo(x: number, y: number): void;
moveTo(x: number, y: number): void;
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
rect(x: number, y: number, w: number, h: number): void;
roundRect(
x: number,
y: number,
w: number,
h: number,
radii?: number | DOMPointInit | (number | DOMPointInit)[],
): void;
roundRect(
x: number,
y: number,
w: number,
h: number,
radii?: number | DOMPointInit | Iterable<number | DOMPointInit, any, any>,
): void;
lineCap: CanvasLineCap;
lineDashOffset: number;
lineJoin: CanvasLineJoin;
lineWidth: number;
miterLimit: number;
getLineDash(): number[];
setLineDash(segments: number[]): void;
setLineDash(segments: Iterable<number>): void;
clearRect(x: number, y: number, w: number, h: number): void;
fillRect(x: number, y: number, w: number, h: number): void;
strokeRect(x: number, y: number, w: number, h: number): void;
canvas: HTMLCanvasElement;
getContextAttributes(): CanvasRenderingContext2DSettings;
shadowBlur: number;
shadowColor: string;
shadowOffsetX: number;
shadowOffsetY: number;
isContextLost(): boolean;
reset(): void;
restore(): void;
save(): void;
fillText(text: string, x: number, y: number, maxWidth?: number): void;
measureText(text: string): TextMetrics;
strokeText(text: string, x: number, y: number, maxWidth?: number): void;
direction: CanvasDirection;
font: string;
fontKerning: CanvasFontKerning;
fontStretch: CanvasFontStretch;
fontVariantCaps: CanvasFontVariantCaps;
letterSpacing: string;
textAlign: CanvasTextAlign;
textBaseline: CanvasTextBaseline;
textRendering: CanvasTextRendering;
wordSpacing: string;
getTransform(): DOMMatrix;
resetTransform(): void;
rotate(angle: number): void;
scale(x: number, y: number): void;
setTransform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void;
setTransform(transform?: DOMMatrix2DInit): void;
transform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void;
translate(x: number, y: number): void;
drawFocusIfNeeded(element: Element): void;
drawFocusIfNeeded(path: Path2D, element: Element): void;
}
Hierarchy (View Summary)
Index
Properties
<internal>.CanvasRenderingContext2D.globalAlpha<internal>.CanvasRenderingContext2D.globalCompositeOperation<internal>.CanvasRenderingContext2D.fillStyle<internal>.CanvasRenderingContext2D.strokeStyle<internal>.CanvasRenderingContext2D.filter<internal>.CanvasRenderingContext2D.imageSmoothingEnabled<internal>.CanvasRenderingContext2D.imageSmoothingQuality<internal>.CanvasRenderingContext2D.lineCap<internal>.CanvasRenderingContext2D.lineDashOffset<internal>.CanvasRenderingContext2D.lineJoin<internal>.CanvasRenderingContext2D.lineWidth<internal>.CanvasRenderingContext2D.miterLimit<internal>.CanvasRenderingContext2D.canvas<internal>.CanvasRenderingContext2D.shadowBlur<internal>.CanvasRenderingContext2D.shadowColor<internal>.CanvasRenderingContext2D.shadowOffsetX<internal>.CanvasRenderingContext2D.shadowOffsetY<internal>.CanvasRenderingContext2D.direction<internal>.CanvasRenderingContext2D.font<internal>.CanvasRenderingContext2D.fontKerning<internal>.CanvasRenderingContext2D.fontStretch<internal>.CanvasRenderingContext2D.fontVariantCaps<internal>.CanvasRenderingContext2D.letterSpacing<internal>.CanvasRenderingContext2D.textAlign<internal>.CanvasRenderingContext2D.textBaseline<internal>.CanvasRenderingContext2D.textRendering<internal>.CanvasRenderingContext2D.wordSpacing
Methods
<internal>.CanvasRenderingContext2D.drawImage<internal>.CanvasRenderingContext2D.beginPath<internal>.CanvasRenderingContext2D.clip<internal>.CanvasRenderingContext2D.fill<internal>.CanvasRenderingContext2D.isPointInPath<internal>.CanvasRenderingContext2D.isPointInStroke<internal>.CanvasRenderingContext2D.stroke<internal>.CanvasRenderingContext2D.createConicGradient<internal>.CanvasRenderingContext2D.createLinearGradient<internal>.CanvasRenderingContext2D.createPattern<internal>.CanvasRenderingContext2D.createRadialGradient<internal>.CanvasRenderingContext2D.createImageData<internal>.CanvasRenderingContext2D.getImageData<internal>.CanvasRenderingContext2D.putImageData<internal>.CanvasRenderingContext2D.arc<internal>.CanvasRenderingContext2D.arcTo<internal>.CanvasRenderingContext2D.bezierCurveTo<internal>.CanvasRenderingContext2D.closePath<internal>.CanvasRenderingContext2D.ellipse<internal>.CanvasRenderingContext2D.lineTo<internal>.CanvasRenderingContext2D.moveTo<internal>.CanvasRenderingContext2D.quadraticCurveTo<internal>.CanvasRenderingContext2D.rect<internal>.CanvasRenderingContext2D.roundRect<internal>.CanvasRenderingContext2D.getLineDash<internal>.CanvasRenderingContext2D.setLineDash<internal>.CanvasRenderingContext2D.clearRect<internal>.CanvasRenderingContext2D.fillRect<internal>.CanvasRenderingContext2D.strokeRect<internal>.CanvasRenderingContext2D.getContextAttributes<internal>.CanvasRenderingContext2D.isContextLost<internal>.CanvasRenderingContext2D.reset<internal>.CanvasRenderingContext2D.restore<internal>.CanvasRenderingContext2D.save<internal>.CanvasRenderingContext2D.fillText<internal>.CanvasRenderingContext2D.measureText<internal>.CanvasRenderingContext2D.strokeText<internal>.CanvasRenderingContext2D.getTransform<internal>.CanvasRenderingContext2D.resetTransform<internal>.CanvasRenderingContext2D.rotate<internal>.CanvasRenderingContext2D.scale<internal>.CanvasRenderingContext2D.setTransform<internal>.CanvasRenderingContext2D.transform<internal>.CanvasRenderingContext2D.translate<internal>.CanvasRenderingContext2D.drawFocusIfNeeded
Properties
global Alpha
globalAlpha: number
global Composite Operation
fill Style
stroke Style
filter
filter: string
image Smoothing Enabled
imageSmoothingEnabled: boolean
image Smoothing Quality
line Cap
line Dash Offset
lineDashOffset: number
line Join
line Width
lineWidth: number
miter Limit
miterLimit: number
Readonly
canvas
shadow Blur
shadowBlur: number
shadow Color
shadowColor: string
shadow Offset X
shadowOffsetX: number
shadow Offset Y
shadowOffsetY: number
direction
font
font: string
font Kerning
font Stretch
font Variant Caps
letter Spacing
letterSpacing: string
text Align
text Baseline
text Rendering
word Spacing
wordSpacing: string
Methods
draw Image
drawImage(image: CanvasImageSource, dx: number, dy: number): void
drawImage(
image: CanvasImageSource,
dx: number,
dy: number,
dw: number,
dh: number,
): void
Parameters
image: CanvasImageSource
dx: number
dy: number
dw: number
dh: number
Returns void
drawImage(
image: CanvasImageSource,
sx: number,
sy: number,
sw: number,
sh: number,
dx: number,
dy: number,
dw: number,
dh: number,
): void
Parameters
image: CanvasImageSource
sx: number
sy: number
sw: number
sh: number
dx: number
dy: number
dw: number
dh: number
Returns void
begin Path
beginPath(): void
Returns void
clip
clip(fillRule?: CanvasFillRule): void
clip(path: Path2D, fillRule?: CanvasFillRule): void
Parameters
path: Path2D
Optional
fillRule: CanvasFillRule
Returns void
fill
fill(fillRule?: CanvasFillRule): void
fill(path: Path2D, fillRule?: CanvasFillRule): void
Parameters
path: Path2D
Optional
fillRule: CanvasFillRule
Returns void
is Point In Path
isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean
isPointInPath(
path: Path2D,
x: number,
y: number,
fillRule?: CanvasFillRule,
): boolean
Parameters
path: Path2D
x: number
y: number
Optional
fillRule: CanvasFillRule
Returns boolean
is Point In Stroke
isPointInStroke(x: number, y: number): boolean
stroke
stroke(): void
Returns void
create Conic Gradient
createConicGradient(startAngle: number, x: number, y: number): CanvasGradient
create Linear Gradient
createLinearGradient(
x0: number,
y0: number,
x1: number,
y1: number,
): CanvasGradient
create Pattern
createPattern(
image: CanvasImageSource,
repetition: null | string,
): null | CanvasPattern
Parameters
image: CanvasImageSource
repetition: null | string
Returns null | CanvasPattern
create Radial Gradient
createRadialGradient(
x0: number,
y0: number,
r0: number,
x1: number,
y1: number,
r1: number,
): CanvasGradient
Parameters
x0: number
y0: number
r0: number
x1: number
y1: number
r1: number
Returns CanvasGradient
create Image Data
createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData
get Image Data
getImageData(
sx: number,
sy: number,
sw: number,
sh: number,
settings?: ImageDataSettings,
): ImageData
Parameters
sx: number
sy: number
sw: number
sh: number
Optional
settings: ImageDataSettings
Returns ImageData
put Image Data
putImageData(imagedata: ImageData, dx: number, dy: number): void
arc
arc(
x: number,
y: number,
radius: number,
startAngle: number,
endAngle: number,
counterclockwise?: boolean,
): void
Parameters
x: number
y: number
radius: number
startAngle: number
endAngle: number
Optional
counterclockwise: boolean
Returns void
arc To
arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void
bezier Curve To
bezierCurveTo(
cp1x: number,
cp1y: number,
cp2x: number,
cp2y: number,
x: number,
y: number,
): void
Parameters
cp1x: number
cp1y: number
cp2x: number
cp2y: number
x: number
y: number
Returns void
close Path
closePath(): void
Returns void
ellipse
ellipse(
x: number,
y: number,
radiusX: number,
radiusY: number,
rotation: number,
startAngle: number,
endAngle: number,
counterclockwise?: boolean,
): void
Parameters
x: number
y: number
radiusX: number
radiusY: number
rotation: number
startAngle: number
endAngle: number
Optional
counterclockwise: boolean
Returns void
line To
lineTo(x: number, y: number): void
move To
moveTo(x: number, y: number): void
quadratic Curve To
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void
rect
rect(x: number, y: number, w: number, h: number): void
round Rect
roundRect(
x: number,
y: number,
w: number,
h: number,
radii?: number | DOMPointInit | (number | DOMPointInit)[],
): void
Parameters
x: number
y: number
w: number
h: number
Optional
radii: number | DOMPointInit | (number | DOMPointInit)[]
Returns void
roundRect(
x: number,
y: number,
w: number,
h: number,
radii?: number | DOMPointInit | Iterable<number | DOMPointInit, any, any>,
): void
Parameters
x: number
y: number
w: number
h: number
Optional
radii: number | DOMPointInit | Iterable<number | DOMPointInit, any, any>
Returns void
get Line Dash
getLineDash(): number[]
Returns number[]
set Line Dash
setLineDash(segments: number[]): void
setLineDash(segments: Iterable<number>): void
clear Rect
clearRect(x: number, y: number, w: number, h: number): void
fill Rect
fillRect(x: number, y: number, w: number, h: number): void
stroke Rect
strokeRect(x: number, y: number, w: number, h: number): void
get Context Attributes
getContextAttributes(): CanvasRenderingContext2DSettings
is Context Lost
isContextLost(): boolean
Returns boolean
reset
reset(): void
Returns void
restore
restore(): void
Returns void
save
save(): void
Returns void
fill Text
fillText(text: string, x: number, y: number, maxWidth?: number): void
measure Text
measureText(text: string): TextMetrics
stroke Text
strokeText(text: string, x: number, y: number, maxWidth?: number): void
get Transform
reset Transform
resetTransform(): void
Returns void
rotate
rotate(angle: number): void
scale
scale(x: number, y: number): void
set Transform
setTransform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void
setTransform(transform?: DOMMatrix2DInit): void
Parameters
Optional
transform: DOMMatrix2DInit
Returns void
transform
transform(
a: number,
b: number,
c: number,
d: number,
e: number,
f: number,
): void
translate
translate(x: number, y: number): void
The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a
MDN Reference