諸事情でbase64でエンコードさえている画像が沢山保存されているブラウザのキャッシュから実画像ファイルを抽出する必要があった。base64の文字列をインスペクターで抽出して、以下のスクリプトにコピペして実行すると画像を抽出できる。
単に画像の形式の宣言部分を端折ってbase64の文字列部分だけをライブラリでデコードすれば良い。
拡張子は合わせる必要がある。
require 'base64'
str='data:image/jpeg;base64,...' # コピペする
File.open("%04d.jpg" % i, 'wb') do|f|
f.write(Base64.decode64(str['data:image/jpeg;base64,'.length .. -1]))
end
一つのファイルに何行もある場合は以下のようにした。
require 'base64'
i = 0
File.foreach('photos.base64') do |str|
puts str.size
i+=1
File.open("%04d.jpg" % i, 'wb') do|f|
f.write(Base64.decode64(str['data:image/jpeg;base64,'.length .. -1]))
end
end
サクッと変換できた。