梵蒂岡之花
2019-10-17 15:03:11
我正在尋找“ 吸管 ”工具,該工具為CMS提供JavaScript鼠標光標所位于的像素的十六進制值。對于Firefox,確實有出色的ColorZilla擴展。但是,它當然只是FF,我真的很想隨同CMS一起提供該工具。荷蘭開發人員有一個非常聰明的主意,就是結合使用Ajax和PHP imagecolorat()來找出圖像上的Pixel顏色。但這限制了我可以訪問服務器端的圖像的范圍,而我真的夢想著有一個通用工具。我將使用其中一種方法,但更希望使用跨瀏覽器,基于Javascript或Flash的方式,這種方式不需要服務器端擺弄,也不需要安裝擴展程序。我對ColorZilla可以做的任何特定于IE的解決方案也很感興趣-我可以只支持IE和FF,盡管跨瀏覽器解決方案當然是理想的。
3 回答

手掌心
TA貢獻1942條經驗 獲得超3個贊
JavaScript不可能克服跨域安全性。如果您知道什么像素構成了圖像,那將是非常糟糕的http://some-other-host/yourPassword.png。如果鼠標位于畫布上或同一域的圖像元素(或帶有Access-Control-Allow-Origin: *標頭的另一個域的圖像元素)上,則只能告訴鼠標下方像素的顏色。對于畫布,您可以這樣做canvasElement.getContext('2d').getImageData(x, y, 1, 1).data。對于圖像,您必須使用以下命令將它們繪制到畫布上:
var canvas = document.createElement("canvas");
canvas.width = yourImageElement.width;
canvas.height = yourImageElement.height;
canvas.getContext('2d').drawImage(yourImageElement, 0, 0);
然后,只需使用為畫布說明的先前方法即可。如果您必須能夠轉換為各種顏色值表示形式,請嘗試我的color.js庫。
另外,您永遠也無法支持IE <9(假設IE9支持畫布),并且使用Flash也無濟于事,因為它也無法讀取文檔的像素數據。
添加回答
舉報
0/150
提交
取消