[解決済み] JavaScriptスポイト(マウスカーソル下のピクセルの色を伝える)
質問
を探しています。 スポイト ツールは、CMS 用の JavaScript で、マウス カーソルがあるピクセルの 16 進値を私に提供します。
Firefox では、優れた カラージラ という拡張機能があり、まさにそれを実現しています。ただ、もちろんFFのみなので、ぜひCMSと一緒にツールを提供したいですね。
あるオランダの開発者が
非常に賢い考えです。
Ajax と PHP の組み合わせによる
imagecolorat()
を使用して、画像上のピクセルカラーを見つけることができます。
しかし、それは私がサーバサイドにアクセスできる画像に範囲を制限します。
そして、私は本当に普遍的なツールを夢見ているのです。
私はこれらのアプローチのうちの 1 つで作業しますが、クロスブラウザ、Javascript または Flash ベースの方法で、サーバー側をいじったり拡張機能をインストールしたりする必要がないものを希望しています。
私はまた、ColorZilla ができることを行う IE 固有のソリューションに興味があります - IE と FF のみをサポートすることに耐えることができますが、もちろんクロス ブラウザ ソリューションが理想的です。
どのように解決するのですか?
JavaScriptではクロスドメインセキュリティに反するので無理です。画像を構成するピクセルを知ってしまうと非常にまずいことになります。
http://some-other-host/yourPassword.png
. マウスがキャンバスの上にあるか、同じドメインの画像要素(あるいは
Access-Control-Allow-Origin: *
ヘッダで提供される別のドメインの画像要素) の上にある場合に、マウスの下のピクセルの色を指定します。canvas の場合、次のようになります。
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 が canvas に対応していることが前提です)、Flash を使用してもドキュメントのピクセルデータを読み取ることができないので、役に立ちません。
関連
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] JavaScriptで文字列に特定の文字が含まれているかどうかを判断するには?
-
[解決済み】PNG画像をサーバーサイドで保存する方法(base64データのURIから)。
-
[解決済み】UITextFieldとUITextViewのカーソル/キャレットの色を変更する。
-
[解決済み] なぜ標準的なブラウザ仮想マシンではなく、JavaScriptなのか?
-
[解決済み] Cookieやローカルストレージを使用しないユーザー認識
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] $.ajax実行中にローディングイメージを表示する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
-
[解決済み] マウス移動時にキャンバスからピクセルカラーを取得する