是否可以讀取畫布A中圖像的像素並在畫布B上創建像素?我只想在圖像的像素爲綠色的情況下在畫布B上創建新的像素。 例如。如果圖像的像素(120,45)爲綠色,我需要在畫布B中創建一個綠色的像素(120,45)閱讀圖像像素
閱讀圖像像素
回答
您可以使用canvas ImageData獲取每個像素的顏色值。功能:
context.getImageData(left, top, width, height);
返回ImageData對象,該對象包括以下屬性:
- 寬度
- 高度
- 數據(CanvasPixelArray)
的CanvasPixelArray
包含所有像素的RGBA值,從t開始左轉右移到右下方。換句話說,它是一個包含4*width*height
條目數量的數組。
使用它,您可以開始循環每個像素(每個像素的+=4
條目),並檢查RGBA值。如果它們匹配您想要的特定值,即綠色,那麼您將該值複製到畫布B,您可以通過修改新創建的ImageData對象來創建畫布B.
您可以創建一個新的空的ImageData對象:
context.createImageData(cssWidth, cssHeight)
請注意,您需要知道識別「綠色」的具體RGBA值或定義特定的條件,也就是說,如果RGBA的G值是>= 150
那麼它就是「綠色」。
另外請注意,你不能得到ImageData
已被污染的資源以外的來源。即,如果您將圖像繪製到不是CORS安全的畫布上,則無法再從該畫布檢索ImageData
,就像您不能使用toDataURL
一樣。
謝謝。我嘗試過'getImageData()'和'putImageData()'來反轉圖像,並認爲這可能是正確的方法。但我不確定像素是否會在畫布B中的相同x,y座標處創建,如同在圖像中一樣。 – user1004912 2012-02-24 12:06:53
@ user1004912如果您指定了相同的尺寸並將新創建的ImageData對象放置到您從中提取最初的一個的相同位置,那麼它們的尺寸/位置將完全相同。 – Niklas 2012-02-24 12:08:54
- 1. unity:閱讀圖像像素
- 2. OpenCV閱讀圖像的像素值
- 3. 閱讀DICOM圖像
- 4. 閱讀單色位圖像素顏色
- 5. 閱讀像素值方法?
- 6. C++讀取圖像像素
- 7. 閱讀沒有畫布的圖像像素
- 8. 如何閱讀WIC圖像中的像素
- 9. Java閱讀圖像 - java.lang.OutOfMemoryError
- 10. codeigniter圖像閱讀器
- 11. 閱讀二進制圖像
- 12. 使用DevIL閱讀圖像
- 13. 閱讀PPM圖像問題
- 14. nodejs閱讀圖像標題
- 15. 閱讀多個圖像php
- 16. 使用argv閱讀圖像
- 17. 閱讀JSON添加圖像
- 18. 閱讀android中的像素顏色
- 19. Vuforia&Unity閱讀像素框架
- 20. 讀取圖像的像素值
- 21. 在C++中讀取圖像像素
- 22. 從圖像中讀取透明像素
- 23. 讀取圖像的像素值
- 24. 讀取圖像的像素顏色
- 25. 替代RMagick/ImageMagick的讀取圖像像素的像素
- 26. 閱讀圖像或圖像處理的內容(室內導航)
- 27. 閱讀地理參考圖像的像素顏色,並獲得LatLng
- 28. 閱讀更改和打印PPM圖像
- 29. 如何閱讀圖像數據?
- 30. 從URL掛起的Java閱讀圖像
你想使用哪種語言? PHP的? – JuSchz 2012-02-24 11:24:34
這可能是一個很好的開始:http://beej.us/blog/2010/02/html5s-canvas-part-ii-pixel-manipulation/ – 2012-02-24 11:45:23
@julesanchez我不知道你可以使用PHP來交互與HTML畫布。 – JJJ 2012-02-24 11:47:44