2012-05-06 40 views
6

Có thể lấy một mảng pixel từ hình ảnh PNG hoặc BMP trong Javascript không? Tôi muốn lấy một mảng RGB từ một hình ảnh để tôi có thể thao tác mảng các điểm ảnh, và sau đó vẽ hình ảnh đã sửa đổi trên một khung hình.Chuyển đổi hình ảnh sang một mảng RGB trong Javascript

UPDATE: Tôi tìm thấy một bản sao chính xác ở đây: how to get the RGB value of an image in a page using javascript?

Tuy nhiên, câu trả lời không đi vào nhiều chi tiết về làm thế nào để thực sự giải quyết vấn đề này.

+0

Nếu bạn nhấp vào liên kết câu trả lời cho câu hỏi đó, bạn sẽ có câu trả lời chi tiết về cách đảo ngược màu của mỗi pixel trong một hình ảnh. Nó sẽ là tầm thường để chuyển đổi mã đó thành lưu trữ một mảng pixel. – JaredMcAteer

+2

Xem https://developer.mozilla.org/en/Canvas_tutorial –

+0

bản sao có thể có của [cách lấy giá trị RGB của hình ảnh trong một trang bằng javascript?] (Http://stackoverflow.com/questions/2754865/how -to-get-the-rgb-giá trị-của-một-hình-trong-một-trang-sử-dụng-javascript) –

Trả lời

8

Có một trăm hướng dẫn trên mạng về việc sử dụng HTML Canvas imageData, nhận giá trị RGBA của canvas. Thực hiện tìm kiếm canvas imageData và bạn sẽ tìm thấy nhiều thông tin.

Tất cả bạn phải làm là:

ctx.drawImage(img, 0, 0); 
var imgData = ctx.getImageData(x, y, width, height).data; 

imgData tại là một mảng mà mỗi 4 nơi là mỗi điểm ảnh. Vì vậy, [0][1][2][3][r][g][b][a] của pixel đầu tiên.

+1

Loại tham số của "img" là gì? Nếu nó là một đối tượng hình ảnh, hoặc nó phải là URL hình ảnh như là một chuỗi? –

+0

@AndersonGreen một thể hiện của đối tượng Hình ảnh, bạn có thể lấy nó qua DOM, tạo một cái mới bằng: 'var img = new Image(); img.src = "http: // ..." hoặc img.src = "dữ liệu: image/jpeg; base64, ...." ' – Mustafa

+0

Tôi không có , vì tôi đang chạy một tập con của XHTML, nhưng tôi có Tôi có thể làm như thế nào? – loretoparisi

Các vấn đề liên quan