2

私は午後中ずっとこの問題をグーグルで調べていて、DolphinとBase64ImageまたはDataURLという単語が一緒に表示されている場所で検索を見つけることができないようです。しかし、一般的にbase64画像を埋め込むことに関する記事を見つけると、ほとんどすべての人が、IE以外のほとんどすべてのブラウザーで機能すると言っています。もちろん、デバイス(Samsung Galaxy Tab Gingerbread)でダーンページのソースやエラーコンソールを表示して、ページが何を解釈しているかを確認することはできません。私が得るのは?画像があるべき場所。ChromeとOperaで動作しますが、Dolphinもストックブラウザも動作しません。

基本的に、サードパーティの署名パッドコントロールがあり、その署名画像はbase64でエンコードされた文字列として返されます。次に、base64でエンコードされた文字列を取得し、それをDataURLに変換して、srcとしてimgコントロールに割り当てます。ChromeとOperaの魅力のように機能しますが、動作する必要のあるモバイルブラウザのどちらでも機能しません。

 var canvas = signaturestr.toDataURL("image/png") //Have also tried jpg and bmp
 $("#image").attr("src", canvas)

これは私に与えますか?画像があるべき場所。したがって、データURLを取得してこれらのブラウザーで受け入れられるようにする方法が必要であるか、生のbase64コードを使用して画像を生成できるようにする必要があります。また、これはオフラインアプリケーションであり、すべてのソリューションをjavascriptまたはjqueryにする必要があることに注意してください。

編集:他のウェブサイトからのbase64画像(stackoverflowフォーラムからのアバターを含む)がこれらのブラウザーに表示されることがわかりました。画像のサイズを小さくしてみましたが、まだうまくいきません。それでも代替テキストと?を取得します。サイズは間違いなく問題ではありません。動作するアバターのサイズよりも小さいサイズに画像を縮小しました。この画像がこれらのブラウザで機能しない理由については、本当に途方に暮れています。動作する画像とまったく同じもののようです。

4

2 に答える 2

5

私は同様の問題を抱えていて、これを見つけました:

JPEGファイルを読み込もうとすると、間違っています...代わりに。dataURLで始まります。私は次の問題を回避しました:data:base64data:image/jpeg;base64

var image = new Image();
image.onload = doSomethingElse();
image.src = myDataURL.replace('data:base64', 'data:image/jpeg;base64');

PNGファイルは問題なく動作するようです。

Android 4(Ice Cream Sandwich)を使用してテストしましたが、デバイスから直接大きな写真をロードすることもできます。

于 2012-04-12T12:32:51.097 に答える
1

画像に変換してそのように表示するのではなく、無効にされたコントロールの新しいインスタンスでキャプチャされた署名を簡単に再表示することができました。まったく同じように機能します。

于 2011-09-28T13:46:39.300 に答える