突然失礼します。
https://n3s.nadesi.com/plain/nadesiko3-FileReader.js
を取り込み、ローカルファイルの画像を取得し、画像処理に使っています。
ここで読み取った画像データをキャンバスに描き、そのデータを使って画像処理を行いたいです。
けれど、もともと用意されているキャンバスのマウスの座標は受け取れますが、putImagedetaが行えません。
もう一つ追加したキャンバスだと描画はできますが、マウスの座標が受け取れません。
どちらかのキャンバスでいいので、座標の取得とputImagedetaの両方行えるようにできないでしょうか。
以下がプログラムの全文です。一応
■https://n3s.nadesi.com/index.php?page=2794&action=show■にて、プログラムを公開しています。
よろしくお願いします。
!「https://n3s.nadesi.com/plain/nadesiko3-FileReader.js」を取込む。
WINDOWへドロップ禁止。
#-----------------------------------------------------------------------
操作キャンバスx=300
操作キャンバスy=0
画像データマップ横=0
画像データマップ縦=0
キャンバス比横=0
キャンバス比縦=0
処理範囲=[]
A=0
変化A=[]
色データ=[]
ベタ塗りデータ=[]
マップ1=[]
# 画像
DOM親要素に「
」をHTML設定。改行作成。#←参照https://nadesi.com/v3/doc/index.php?plugin_browser%2FDOM%E8%A6%81%E7%B4%A0ID%E5%8F%96%E5%BE%97&show
「☆画像ファイルを選択してください。または、キャンバスにドロップしてください。」のラベル作成。改行作成。
ファイル選択作成して画像ファイル選択に代入。
画像ファイル選択の「accept」に『image/*』をDOM属性設定。 //固有ファイル型指定子*/
// 画像ファイル選択の「multiple」に、はいをDOM属性設定。 //複数選択出来るようにする
画像ファイル選択の「change」に、「選択画像取得」をDOMイベント追加。
改行作成。改行作成。
「#nako3_canvas」にファイルドロップした時には、
画像ファイル選択["files"]=対象。
選択画像取得。
ここまで。
●選択画像取得
選択ファイルリスト=画像ファイル選択["files"]。
ファイル=選択ファイルリスト[0]
「名前:{ファイル["name"]}」を表示 //ファイル名(パス無し)
「サイズ:{ファイル["size"]}」を表示 //ファイルサイズ(バイト)
「拡張子:{ファイル["type"]}」を表示 //ファイルタイプ(image/jpegとか)
#ファイル["height"]を表示
#ファイル["width"]を表示
ファイルの画像ファイル開いた時には
img=対象。
#「#result」の「src」にimg["src"]をDOM属性設定。
#←ここを消すと大きな画像なくなりキャンバス表示のみとなる!!(https://nadesi.com/v3/doc/index.php?plugin_browser%2FDOM%E5%B1%9E%E6%80%A7%E8%A8%AD%E5%AE%9A&show 参照)
操作キャンバスy=img["height"]/(img["width"]/操作キャンバスx)
「高さ:{img["height"]}」を表示 #←追加した。
「幅:{img["width"]}」を表示
#img["src"]を表示 #←これをやると意味不明のデータ取得
img["height"]を画像データマップ縦に代入
img["width"]を画像データマップ横に代入
[0,0,操作キャンバスx,操作キャンバスy]にimgを画像描画。
[画像データマップ横,画像データマップ縦]のキャンバス作成 ##←キャンバス作成
[0,0]にimgを画像描画
画像データマップ横/操作キャンバスxをキャンバス比横に代入
画像データマップ縦/操作キャンバスyをキャンバス比縦に代入
ここまで。
ここまで。
/*==============================================================
ここから
画像CSV化―編集プログラム
--------------------------------------------------------------
===============================================================*/
改行作成。
改行作成。
●(xywhの|xywhを)色データ取得
描画中コンテキストの「getImageData」をxywhでJSメソッド実行して、それ["data"]で戻る。
ここまで。
●(xywhを色データで|xywhに)画像処理反映
『(function (xywh,color,ctx){
const [x,y,w,h]=xywh;
const img = ctx.getImageData(x,y,w,h);
let data = img.data;
for (let i=0; i