「画像ファイルの色を置換したい」を改良する(1)のブラウザ版をつくります。デスクトップアプリをつくって公開してもいまではほとんどダウンロードしてくれません。webアプリならurlを伝えるだけで来てもらえるようになります。

HTML部分

まずHTML部分を示します。アップロードボタンをクリックしたら画像を表示し、クリックで色情報を取得して置換前と置換後の色を選択できるようにします。

style.cssを示します。見た目を整えているだけです。

style.css

JavaScript部分

JavaScript部分を示します。最初にグローバル変数を示します。

app.js

クリックされた座標の色、置換前の色、置換後の色を保存するためのグローバル変数として以下を定義します。

app.js

初期化

ページが読み込まれたらクリックされた色を初期化します。

app.js

画像ファイルをアップロードする

アップロードボタンをクリックしたときの処理を示します。画像ファイルを読み込んでcanvas要素内に表示します。

app.js

クリック時の処理

canvasがクリックされたらどの部分がクリックされたか調べてその色情報を保存します。

app.js

色情報の一次保存とクリア

保存ボタンがクリックされたらclickedColorに格納されている情報をbeforeColorまたはafterColorに保存するとともに視覚的にもわかるように該当要素の背景色と表示されている文字列を変更します。

app.js

クリアボタンがクリックされたら保存されている色情報をクリアします。

app.js

canvas要素に表示されている画像の色を置換する

置換ボタンがクリックされたらcanvas要素に表示されている画像の各ピクセルを調べて置換すべき色を置き換えます。そして置換された画像を表示させます。

app.js

canvasに表示されている画像を保存する

ダウンロードボタンがクリックされたらcanvasに表示されている画像をダウンロードして保存します。

app.js