大きなショッピングセンターでのプレゼンテーションに同意しました。紙の本が販売され、著者が署名し、iPadのバージョンがセンターの訪問者によってダウンロードされ、提供されたiPadでアニメーションで再生されます。
しかし、著者が紙の本に署名するのであれば、なぜ署名し、電子化しないのですか?
アイデアは新しくて独創的ですが、実現可能ですか?
私はすぐに署名を実装することができなかったと言います、そしてここに理由があります...
技術的には、すべてが単純です-誘導スタイラスを使用します。本では、描画ハンドラーと、ひどく書かれたものを消去して保存するための2つの秘密の場所を持つキャンバスブロックを配置します。 LocalStorageに保存します。
本にテキストを書くのに問題はありませんでした。 キャンバスに描画するコードは完全なインターネットであり、主な「トリック」はドットではなくセグメントで描画することです。 図面コードはここに引き継がれました 。
getImageData()
を使用してキャンバスを保存します。
署名は白黒なので、3つのRGB値すべてではなく、1つだけを保存できます。 次に、結果の数値を文字コードに変換し、画像を説明する膨大な文字列を取得します。
保存にはjQuery jStorageプラグインが使用されました。
素晴らしい。 すべてはコンピューター上でも動作します。 iPadへの転送。
書き込まれたテキストは復元されません。 アラートを設定します。 描画は保存されないことがわかります。 コードを簡素化し、jStorageプラグインを平凡なものに置き換えますが、間違いなく動作するもの
LocalStorage.name=”-”
です。
動作しません。 Google。 iBooks 1.3とiBooks 2の間のどこか-AppleはLocalStorageのサポートを打ち切りましたが、Cookieのサポートはあります。
キャンバスのサイズは767x600ピクセルで、400キロバイトを超えるデータです。
Cookieは4キロバイトしか保存できません。 そのため、画像データを4KBに分割しました。
クックは、サイトごとに20個にすることができます。 念のため、1サイクルで150個のCookieを作成します-動作します。
画像データを配信しようとしていますが、うまくいきません。 Cookieの合計容量は20 * 4096、つまり約80キロバイトであり、Cookieは20ではなく、それ以上ですが、データが少ないため、合計が80キロバイトを超えないことがわかります。
途中で、デバッグバージョンがそのような大きなヘッダーの送信元のページを開くのを停止するというApacheの別の問題を掘り下げているので、毎回Cookieをクリアする必要があります。
写真の音量を下げる必要があります。 各ポイントをバイト単位ではなくビット単位でエンコードできますが、グレースケールの画像は白黒になり、見苦しくなります。
Google、 Canvas2Imageライブラリを見つけます。 ライブラリは、イメージタイプのオブジェクトを返すか、キャンバスをjpeg、png、またはbmp形式でディスクに保存します。 オブジェクトは必要ありません。クリーンなデータが必要なので、不要な部分がライブラリコードにスローされました。 これで、base64でエンコードされたpngができました。
画像サイズは20〜50 KBの間で変動し始めます。 著者は、読者の希望に流されないように指示を受け取ります。
描画を復元しようとします...これには、canvasの
drawImage()
関数を使用します。 うーん、2回目から復元されました。 問題は、drawImageをフィードするために必要な画像オブジェクトにデータを入力する時間がないことです。 base64データがimage.srcとして使用されていたため、これは私にとっては予想外でした。
この問題は、画像のloadイベントでdrawImageを呼び出すことで解決しました。
コンピューターで確認します-動作します。
iPadに転送します-動作しません。 私たちはアラートを叫んでいます。 画像は正常に保存され、復元されました-いいえ。 各Cookieを表示するようにアラートを設定します。 最初のcookieが読み取られ、2番目のcookieがなくなって、iBooksのjavascriptが落ちているようです。
小さいCookieを作成しようとしています。 古いものを削除するには、iBooksを削除して再インストールする必要がありました。
これで、200バイトの2番目のCookieの後にすべてが停止します。 Cookieの下のデータのサイズは、ブラウザのサイズよりもかなり小さいようです。 不合格...
この時点で、開発は中止されました。 iBooksストレージのサイズを調べるのは不便ですが、デバイスでのインタラクティブなブックのデバッグは面倒であり、この場合は見込みがありません。 著者は紙の本だけに署名する必要があります...