Đối tượng Canvas của HTML DOM

Phần tử <canvas> định nghĩa khu vực bitmap trong trang HTML.

API Canvas cho phép JavaScript vẽ các hình ảnh trên khung vẽ.

API Canvas cho phép JavaScript vẽ các hình ảnh trên khung vẽ.

Thêm Canvas vào HTML

Bạn có thể sử dụng thẻ <canvas> để thêm phần tử canvas vào bất kỳ vị trí nào trong trang HTML:

Mô hình

<canvas id="myCanvas" width="300" height="150"></canvas>

Thử ngay

Cách truy cập vào phần tử Canvas

Bạn có thể sử dụng phương pháp HTML DOM được gọi là getElementById() để truy cập vào phần tử <canvas>:

const myCanvas = document.getElementById("myCanvas");

Để vẽ trên canvas, bạn cần tạo đối tượng ngữ cảnh 2D:

const ctx = myCanvas.getContext("2d");

Ghi chú

HTML <canvas> không có chức năng vẽ.

Bạn phải sử dụng JavaScript để vẽ bất kỳ hình ảnh nào.

Phương pháp getContext() trả về một đối tượng có các công cụ vẽ (phương pháp).

Vẽ trên canvas

Sau khi tạo đối tượng ngữ cảnh 2D, bạn có thể vẽ trên canvas.

Phương pháp fillRect() dưới đây đã vẽ một hình vuông đen, góc trên bên trái của nó ở vị trí 20,20. Hình vuông có chiều rộng 150 pixel và chiều cao 100 pixel:

Mô hình

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillRect(20, 20, 150, 100);

Thử ngay

Sử dụng màu sắc

Thuộc tính fillStyle thiết lập màu sắc lấp đầy đối tượng vẽ.

Mô hình

const myCanvas = document.getElementById("myCanvas");
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Thử ngay

Bạn cũng có thể sử dụng phương pháp document.createElement() để tạo một đối tượng <canvas> mới và thêm đối tượng này vào trang HTML hiện có:

Mô hình

const myCanvas = document.createElement("canvas");
document.body.appendChild(myCanvas);
const ctx = myCanvas.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 150, 100);

Thử ngay

Đường dẫn

Phương pháp phổ biến để vẽ trên canvas là:

  1. Bắt đầu đường dẫn - beginPath()
  2. Di chuyển đến một điểm - moveTo()
  3. Vẽ trong đường dẫn - lineTo()
  4. Vẽ đường dẫn - stroke()

Mô hình

const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(20, 100);
ctx.lineTo(70, 100);
ctx.stroke();

Thử ngay

Màu sắc, phong cách và bóng

Thuộc tính Mô tả
fillStyle Đặt hoặc trả về màu sắc, dải màu hoặc mẫu được sử dụng cho việc lấp đầy vẽ.
strokeStyle Đặt hoặc trả về màu sắc, dải màu hoặc mẫu được sử dụng cho đường viền.
shadowColor Đặt hoặc trả về màu sắc được sử dụng cho bóng.
shadowBlur Đặt hoặc trả về mức độ mờ của bóng.
shadowOffsetX Đặt hoặc trả về khoảng cách ngang từ bóng đến hình dạng.
shadowOffsetY Đặt hoặc trả về khoảng cách dọc từ bóng đến hình dạng.
Phương pháp Mô tả
createLinearGradient() Tạo dốc tuyến tính (dùng cho nội dung canvas).
createPattern() Lặp lại phần tử chỉ định theo hướng chỉ định.
createRadialGradient() Tạo dốc tia hoặc dốc tròn (dùng cho nội dung canvas).
addColorStop() Định nghĩa màu sắc và vị trí dừng trong đối tượng dốc.

Kiểu đường

Thuộc tính Mô tả
lineCap Đặt hoặc trả về kiểu đỉnh của đường.
lineJoin Đặt hoặc trả về loại góc được tạo khi hai đường相交.
lineWidth Đặt hoặc trả về độ rộng đường.
miterLimit Đặt hoặc trả về độ dài tối đa của góc miter.

Khung vuông

Phương pháp Mô tả
rect() Tạo khung vuông.
fillRect() Vẽ khung vuông được lấp đầy.
strokeRect() Vẽ khung vuông (không lấp đầy).
clearRect() Xóa pixel chỉ định trong khung vuông.

Đường dẫn

Phương pháp Mô tả
fill() Lấp đầy hình ảnh hiện tại (đường dẫn).
stroke() Thực sự vẽ đường dẫn mà bạn đã định nghĩa.
beginPath() Bắt đầu đường dẫn hoặc đặt lại đường dẫn hiện tại.
moveTo() Chuyển đường dẫn đến điểm chỉ định trên canvas mà không tạo đường.
closePath() Tạo đường dẫn từ điểm hiện tại trở lại điểm bắt đầu.
lineTo() Thêm một điểm mới và tạo một đường từ điểm đó đến điểm cuối cùng được chỉ định trên canvas.
clip() Cắt bỏ bất kỳ hình dạng và kích thước nào từ canvas gốc.
quadraticCurveTo() Tạo đường cong hai điểm Bezier.
bezierCurveTo() Tạo đường cong ba điểm Bezier.
arc() Tạo hình tròn hoặc đường cong (dùng để tạo hình tròn hoặc phần tròn của hình tròn).
arcTo() Tạo hình tròn hoặc đường cong giữa hai đường cắt.
isPointInPath() Nếu điểm chỉ định nằm trong đường dẫn hiện tại, thì trả về true, ngược lại trả về false.

Chuyển đổi

Phương pháp Mô tả
scale() Phóng to hoặc thu nhỏ hình ảnh hiện tại.
rotate() Quay hình ảnh hiện tại.
translate() Chuyển đổi lại vị trí (0,0) trên canvas.
transform() Thay thế ma trận chuyển đổi hiện tại của vẽ.
setTransform() Đặt lại chuyển đổi hiện tại thành ma trận đơn vị. Sau đó chạy transform().

Văn bản

Thuộc tính Mô tả
font Đặt hoặc trả về thuộc tính font hiện tại của nội dung văn bản.
textAlign Đặt hoặc trả về cách đối齐 hiện tại của nội dung văn bản.
textBaseline Đặt hoặc trả về đường cơ bản hiện tại được sử dụng để vẽ văn bản.
Phương pháp Mô tả
fillText() Vẽ văn bản 'lấp đầy' trên canvas.
strokeText() Vẽ văn bản trên canvas (không lấp đầy).
measureText() Trả về đối tượng chứa chiều rộng của văn bản được chỉ định.

Vẽ hình ảnh

Phương pháp Mô tả
drawImage() Vẽ hình ảnh, canvas hoặc video trên canvas.

Công tác xử lý pixel

Thuộc tính Mô tả
width Trả về chiều rộng của đối tượng ImageData.
height Trả về chiều cao của đối tượng ImageData.
data Trả về đối tượng chứa dữ liệu hình ảnh của đối tượng ImageData được chỉ định.
Phương pháp Mô tả
createImageData() Tạo đối tượng ImageData mới trống.
getImageData() Trả về đối tượng ImageData, đối tượng này sao chép dữ liệu pixel của hình vuông được chỉ định trên canvas.
putImageData() Đưa dữ liệu hình ảnh (từ đối tượng ImageData được chỉ định) trở lại canvas.

Hợp thành

Thuộc tính Mô tả
globalAlpha Đặt hoặc trả về giá trị alpha hoặc độ trong suốt hiện tại của việc vẽ.
globalCompositeOperation Đặt hoặc trả về cách vẽ hình ảnh mới lên hình ảnh hiện tại.

Khác

Phương pháp Mô tả
save() Lưu trạng thái hiện tại của ngữ cảnh.
restore() Trả về trạng thái và thuộc tính của đường dẫn đã lưu trước đó.
createEvent()
getContext()
toDataURL()

Thuộc tính và sự kiện tiêu chuẩn

Đối tượng canvas hỗ trợ đồng thời các tiêu chuẩnThuộc tínhSự kiện.

Trang liên quan

Hướng dẫn HTML:Canvas HTML5

Hướng dẫn hình ảnh HTML:Hướng dẫn Canvas HTML

Tài liệu tham khảo HTML:Thẻ <canvas> trong HTML