javascriptでキャンバスオブジェクトをシリアライズ/デシリアライズできますか?Javascript Canvasシリアル化/逆シリアル化?
10
A
答えて
3
canvas.getImageData()および.putImageData()を使用してピクセルに直接アクセスできます。 canvas.toDataURL()を使用してイメージをデータURLにシリアル化して、サーバーにポストすることもできます。
これは新しいブラウザでのみ機能します。
14
getImageData
メソッド以外にも、canvas.toDataURL()
を使用してデータURLエンコードPNGを取得できます。文字列にシリアル化する必要がある場合は、生データを手動で文字列に変換する必要がありません。デシリアライズするには、イメージを作成し、srcをデータURLに設定してキャンバスに描画します。
[(olliejによって提案された)非同期ロードを考慮して編集。]
function serialize(canvas) {
return canvas.toDataURL();
}
function deserialize(data, canvas) {
var img = new Image();
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext("2d").drawImage(img, 0, 0);
};
img.src = data;
}
私の記憶が正しければ、一部の古いサファリのバージョン、および多分OperaはtoDataURL
をサポートしていませんでしたが、最近のバージョン行う。
関連する問題
- 1. 逆シリアル化の逆シリアル化
- 2. WPF BitmapImageシリアル化/逆シリアル化
- 3. Android HashMapシリアル化/逆シリアル化
- 4. GeometryDrawingシリアル化/逆シリアル化
- 5. Javascript JSON日付逆シリアル化
- 6. C++でのXMLシリアル化/逆シリアル化
- 7. C#Xmlシリアル化と逆シリアル化
- 8. カレンダーのシリアル化の逆シリアル化
- 9. MSMQ複合オブジェクトのシリアル化/逆シリアル化
- 10. .net DateTimeシリアル化逆シリアル化のバグ
- 11. 逆シリアル化JSON
- 12. JSF直列化/逆シリアル化
- 13. Sitecore Powershell逆シリアル化
- 14. 逆シリアル化配列
- 15. MvcSerializer()。逆シリアル化(シリアライゼーションモード...)
- 16. .Netバイナリ逆シリアル化
- 17. 生のC配列の逆シリアル化、逆シリアル化
- 18. XML XNAオブジェクトの逆シリアル化
- 19. XML逆シリアル化C#配列
- 20. ジャンクションのカスタムJSON逆シリアル化
- 21. 逆シリアル化JSONのジャクソン
- 22. ジャクソンカスタムブールjsonプロパティの逆シリアル化
- 23. WCF Restのカスタム逆シリアル化
- 24. 列挙値の逆シリアル化
- 25. QTextStreamによる逆シリアル化?
- 26. GSON:カスタムオブジェクトの逆シリアル化
- 27. Silverlight:XMLの逆シリアル化エラー
- 28. DateTime XMLの逆シリアル化
- 29. WCFサービスエラーオブジェクトの逆シリアル化
- 30. XML逆シリアル化(問題)
技術的にイメージは同期的にロードされることは保証されていないので、イメージ・ロード・ハンドラの作業の残りの部分を実際に実行する必要があります。 – olliej
良い点。私はそれを修正します。 –