2011-06-25 10 views
1

私はs3の画像にhtml5キャンバスを保存するdoodleアプリケーションを用意しています。ユーザーが何も描画せずに誤って「保存」をクリックすると、空白の(完全に透明な)PNGを保存しないようにしたい。私は空白のキャンバスでさえ、toDataURL()は決して空の文字列ではなく、データの巨大なダンプであることを発見しました。キャンバスにデータが追加されていない場合、この文字列は常に同じ値のままです。したがって、空のキャンバスを検出する1つの方法は、送信されたキャンバスデータをこの空のキャンバスデータ文字列と比較して一致するかどうかを確認することです。html5キャンバスが空白かどうかを検出するには?

私の質問は、これを行うより効率的な方法はありますか?何千もの文字列である2つの文字列の文字列比較を実行すると、実際に空のキャンバスが送信された場合は、最後の文字まで比較する必要があります。新しく提出されたキャンバスのmd5ハッシュを最初に計算し、それを既知の空のキャンバスデータストリングのmd5ハッシュと比較する方が効率的ですか?どちらが速いの?

空のキャンバスを決める他の方法はありますか?

例:文字列の長さを空のキャンバスに一致する信頼できるテストと比較していますか?

+0

類似した質問http://stackoverflow.com/q/4644524/684229 – TMS

答えて

1

クリック/ドラッグを簡単に検出できますか?そうであれば、ユーザーが最初に何かを描画したときに反転される最初の 'キャンバス空の'ブール値を持つことができます。

ユーザーが何かを描画してから消去してから保存すると、これは役に立たないでしょう。

+0

はい、キャンバス内でmouseDownを行った場合は、非表示のフィールドを設定できます。大部分のケースでうまくいくと思いますが、実際の空のファイルをチェックすることはできません。だから解決策は、消しゴムを持たないことです! :) – Homan

関連する問題