最初のステップは、Base64データを抽出することです。次に、Base.decode64!/1
とFile.write!/2
を使用できます。
あなただけimage/gif
、あなたが行うことができますを取得することを保証している場合:
iex(1)> input = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
iex(2)> "data:image/gif;base64," <> raw = input
iex(3)> raw
"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
iex(4)> File.write!("a.gif", Base.decode64!(raw))
:ok
またはあなただけ、任意のファイルタイプにbase64
を取得することが保証しているあなたがすることができる場合:
iex(1)> input = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
iex(2)> {start, length} = :binary.match(input, ";base64,")
{14, 8}
iex(3)> raw = :binary.part(input, start + length, byte_size(input) - start - length)
"R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
iex(4)> File.write!("a.gif", Base.decode64!(raw))
:ok
これらの両方のスニペットはファイルをa.gif
に書き込みます。これはあなたが好きなものに使うことができます。一時的なイメージを作成したい場合は、System.tmp_dir/1
のどこかに格納し、使用後に削除することをお勧めします。
ベース64をArcで使用することができます。 Plsは最新のソースコードをチェックします。 https://github.com/stavro/arc/pull/108 –