給定一個帶有一些透明像素和一些不透明像素的web上下文中的PNG,Javascript中有一種方法可以確定用戶是否點擊了非透明像素?僅webkit解決方案將是完全可以接受的。不透明像素點擊檢測
11
A
回答
24
1)創建相同大小的HTML5畫布作爲圖像
2)獲取畫布的上下文,的drawImage(yourImage,0,0)
3)d = context.getImageData(0,0,W IMG的,H IMG
4)d.data [(Y *寬度+ X)* 4 + 3]爲阿爾法
canvas = document.createElement("canvas"); //Create HTML5 canvas: supported in latest firefox/chrome/safari/konquerer. Support in IE9
canvas.width = img.width; //Set width of your rendertarget
canvas.height = img.height; // \ height \ \ \
ctx = canvas.getContext("2d"); //Get the 2d context [the thing you draw on]
ctx.drawImage(img, 0, 0); //Draw the picture on it.
id = ctx.getImageData(0,0, img.width, img.height); //Get the pixelData of image
//id.data[(y*width+x)*4+3] for the alpha value of pixel at x,y, 0->255
8
的)我知道這些東西都是出的時尚這些天,但HTML image maps仍然有效,並且可以實現將圖像中的幾乎任意形狀的擊中目標加入。如果您實際上並不想在點擊時重新載入另一個頁面,則可以使用此技術更改URL中的錨點,然後以Javascript時間間隔獲取更改。
0
畫布是爲此目的而走的路。但是請記住,較舊的Internet Explorer版本將無法使用getImageData()
功能。即使你包含excanvas。
我爲此目的製作了一個小的jquery插件,也許它可以幫助您解決問題,而不會完全重新發明輪子。 http://www.cw-internetdienste.de/pixelselection/
相關問題
- 1. 的ImageButton檢測點擊甚至在透明的像素
- 2. SpriteKit碰撞檢測與透明圖像
- 3. 檢測點擊img元素
- 4. 檢測點擊的元素
- 5. 只有當點擊的像素不透明時,纔會點擊圖像上註冊的事件?
- 6. 點擊透明表格
- 7. 如何檢測Event.MOUSE_LEAVE時的wmode =不透明或的wmode =透明
- 8. Opencv透明物體檢測
- 9. 如何檢測頁面不透明度?
- 10. 使黑色像素透明
- 11. RGB像素透明度
- 12. WPF中透明的不透明元素
- 13. 帆布只得到不透明像素
- 14. 檢測TreeView節點圖像點擊
- 15. 使圖像的透明部分不可點擊
- 16. jQuery:與點擊不透明度變化的圖像推子
- 17. 點擊透明畫布元素選擇背後的元素
- 18. 點擊不同的透明PNG的。點擊哪一個?
- 19. 檢測點擊不工作
- 20. 在Silverlight的圖像中只有非透明像素點擊可測試的最佳方式是什麼?
- 21. 如何檢測元素的點擊?
- 22. 檢測點擊外部元素?
- 23. jquery檢測點擊元素ID
- 24. 檢測iframe中的圖像點擊
- 25. 檢測點擊矩形圖像android
- 26. Qt 4.7.4 - 使QGraphicsItem pixmap中的透明像素可點擊(展開hitbox)
- 27. 透明的.gif圖像不允許背景CSS元素透過
- 28. 透明圖像搞亂透明圖像
- 29. Javascript檢查畫布上的透明圖像是否已被點擊
- 30. 如何擊中無效或透明背景上的檢測?
好的。那很好!當我得到更多選票時,在34分鐘內爲您+1 !-) – Josh 2010-05-20 23:25:11