19/09/2018, 15:01

createImageData() trong Canvas

Tạo một đối tượng ImageData có kích thước 100*100 với mỗi pixel được thể hiện bằng màu đỏ: Trình duyệt của bạn không hỗ trợ thẻ canvas trong HTML5. Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...

Tạo một đối tượng ImageData có kích thước 100*100 với mỗi pixel được thể hiện bằng màu đỏ:

Trình duyệt của bạn không hỗ trợ thẻ canvas trong HTML5.

Code:

Demo

Trình duyệt hỗ trợ

Số trong bảng dưới đây thể hiện phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ cho thuộc tính.

Thuộc tính Icon Chrome Icon FireFox Icon IE Icon Safari Icon Opera
createImageData() 4.0 2.0 9.0 3.1 9.0

Định nghĩa và cách sử dụng

Phương thức createImageData() dùng để tạo một đối tượng ImageData rỗng. Mặc định, các giá trị pixel của đối tượng mới là màu đen trong suốt.

Mỗi pixel trong đối tượng ImageData có chứa 4 thông tin, thông tin đó chính là giá trị RGBA:

R – Màu đỏ (từ 0-255)
G – Màu xanh lá cây (từ 0-255)
B – Màu xanh da trời (từ 0-255)
A – Độ mờ (từ 0-255; 0 là trong suốt và 255 là hiển thị đầy đủ)

Vì vậy, màu đen trong suốt sẽ là: (0,0,0,0).

Thông tin về màu/độ mờ được chứa trong một mảng và mảng này chứa 4 thông tin về mỗi pixel, kích cỡ của mảng gấp 4 kích cỡ của đối tượng ImageData: awidth*height*4. (Bạn có thể lấy kích cỡ của mảng một cách dễ dàng hơn bằng cách sử dụng ImageDataObject.data.length)

Mảng chứa thông tin màu/độ mờ được lưu trữ trong thuộc tính data của đối tượng ImageData.

Mẹo: Sau khi bạn có thông tin về màu/độ mờ trong mảng, bạn có thể sao chép dữ liệu này để hiển thị trên canvas bằng phương thức putImageData().

Ví dụ:

Cú pháp để tạo pixel đầu tiên trong đối tượng ImageData là màu đỏ:

Cú pháp để tạo pixel đầu tiên trong đối tượng ImageData là màu xanh lá cây:

Cú pháp JavaScript:

Phương thức createImageData() có 2 kiểu sử dụng:

1. Tạo mới một đối tượng ImageData kèm theo độ phân giải (đơn vị là pixel):

Cú pháp JavaScript: var imgData=context.createImageData(awidth,height);

2. Tạo mới một đối tượng ImageData có độ phân giải giống một đối tượng ImageData khác (chỉ giống thông tin về độ phân giải, không sao chép dữ liệu khác):

Cú pháp JavaScript: var imgData=context.createImageData(imageData);

Giá trị tham số

Tham sốMiêu tả
awidthChiều rộng của đối tượng ImageData mới, đơn vị đo là pixel
heightChiều cao của đối tượng ImageData mới, đơn vị đo là pixel
imageDataĐối tượng ImageData khác dùng để lấy thông tin độ phân giải
0