divからSVGコンテンツを生成するためにプラグイン(dom-to-image)を使用しています。プット場合<img src
上の画像は、通常に示されている。このSVG dataUrlをbase64に変換する
data image/xml, charset utf-8, <svg...
: それはこのように私にdataURLを返します。
このdataURLを取得し、それをbase64に変換して、モバイルアプリでimage.pngとして保存できるようにすることです。
それは可能ですか?
私はこの解決策を試しましたhttps://stackoverflow.com/a/28450879/1691609 しかし、うまくいきません。 dataUrl
TypeError: Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1 is not of type 'Node'.
==== UPDATEについてコンソール火エラー:: PROBLEM説明/ HISTORY ====
私はイオン性フレームワークを使用していますので、私のプロジェクトは、モバイルアプリです。 dom-to-imageは現在で動作しているです。そのレンダリングは、からPNGまでのPNGをレンダリングします。 問題はラスターPNGがぼやけていることです。
だから、私は考えました。たぶん、SVGの方が品質が良いでしょう。 それはIS !!その100%完璧な、実際には。
Ionicでは、2段階の手順で画像を保存しています。 dom-to-img(base64)dataURLによって生成されたPNGを取得した後、それをBlobに変換してデバイスに保存します。 これは動作していますが、私が言ったように最終的な結果はぼやけています。
次に、SVGを使用すると、たぶん「高品質」になるでしょう。
ので、すでに作業sのプロセスの「最小限」の変更を行うために:
.... DIはちょうどbase64でdataURLにSVGを変換する必要があるのか、あなたのいくつかは私に説明したように、/
===
申し訳ありませんが長い記事のために、と私は本当に、本当にあなたの助けみんなに感謝!!:何か他のものの中に、キャンバスのような... は、私がどのくらいかわかりません私はあなたの場合は動作しない理由を見つけようとしていないよ
あなたはSVGのPNG形式のバージョンをしたいですか?その後、ラスタライズする必要があります。 jsからの唯一の方法は、キャンバスAPIです。 'drawImage'メソッドで直接画像を描画することもできますが、これはIEのブラウザでは機能しません。また、canvgのようなライブラリを試すこともできますが、最初にdataURLを解析する必要があります(指摘したQ/Aの逆を行います)。 base64は単なる文字列エンコーディングです。画像のフォーマットとは関係ありません。 – Kaiido
イメージpngとして保存するために、なぜbase64に変換する必要がありますか?あなたがTypeErrorを取得している理由を判断するには、[mcve]が必要です。 –
@Kaiido私の説明を説明文で更新しました:D –