RIA(オフライン)のブラウザコントロールに画像を渡す
いつもお世話になってます。
RIAのシステムでAndroid端末限定です。
RIAのカメラで取得した画像をブラウザコントロールに渡して
ブラウザコントロールに表示し、手書き加工した画像を
端末に保存する事を考えています。
問題点
html,javascriptはローカルにコピーしています。
・RIAからカメラで取得した画像をHTMLの中に記述したファイル名にリネイムして
表示し手書きまでできますが、ローカルのファイルを直接指定しているため
toDataURL()でエラーになります。
・それならばRIAのカメラではなく JavaScriptにてカメラから画像を取得できないかと
考えましたが、html自体をfile://で指定しているため制限に引っかかりカメラを
取得できません。
何か良い案は無いでしょうか。
-
E_yさん、
画像へのパスを相対パスで指定しても駄目でしたか?
例:<img src="./image/img.jpg">
-
tandaさん、
相対パスでも駄目でした。
html自体をfile://で指定しているためWebページから直接ローカルファイルを指定していと判定されるのでしょう。
android端末自体にWebサーバを立ててhttp://localhostでhtmlを指定できてば、この制限を回避できるのかもしれません。
-
input type="file" で画像を選択する方法であれば問題なく処理できますね。
htmlに画像のデータをファイル名で指定するではなくデータで渡す事ができないか考え中です。
-
E_yさん、
これなんか参考になりませんか?
-
tandaさん
情報ありがとうございます。android端末自体にWebサーバを立てるのは最後の手段として考えています。
別の方法がないか考え中です。
-
E_yさん、
オフラインでなければ難なく行けるのですが、やはりオフラインでなければならない事情があるのでしょうか?
-
tandaさん
オフラインは必須ではないのですが、画像をインターネットから見れる場所に置きたくない事が一番の理由です。
-
バイナリデータをテキストデータに変換するBase64という方法を使って画像をテキストデータに変換すれば、HTMLソースの中に画像を直接埋め込むことができそうですね。
magicの関数:BlobToBase64 を使ってマージもしくは文字列置換でhtmlに埋め込む
時間を見つけて試してみます。
-
あ、いいですね。
Base64は30年以上前からあるテクノロジーですが、今でもそうした活用法がありますね。
うまくいくといいですね。
-
magicの関数:BlobToBase64 を使ってhtmlに埋め込む方法で表示し、手書き入力した画像を
toDataURLしたデータをMagicに渡すとこまではできました。
今は受け取ったデータを画像に変換する処理を組み込んでいるところです。
-
過去のフォーラムで上がっていた「BASE64にエンコードされたデータを実ファイルにしたい。」を参考に実装したところMagicで画像データを保存する事ができました。
サインインしてコメントを残してください。
コメント
11件のコメント