[ruby]irbで画像URLからbase64エンコード画像を作成する


[まとめ] 現在開催中のKindleセール情報はこちら

画像をbase64エンコード画像に変換したかったのでrubyで試してみました。

sample
(画像URLは https://blog.hello-world.jp.net/wp-content/plugins/social-media-widget/images/default/64/twitter.png です)

今回は上記画像をbase64のpng形式に変換してみます。

irbを起動

irb -r base64 -r open-uri

# 以下を入力
'data:image/png;base64,' + Base64.strict_encode64(open('https://blog.hello-world.jp.net/wp-content/plugins/social-media-widget/images/default/64/twitter.png').read)

# 結果
=>"data:image/png;base64,iVBORw0KGgoAAAAN!~~省略~~5ErkJggg=="

ファイル読み込みの場合は以下

irb -r base64

# 以下を入力
'data:image/png;base64,' + Base64.strict_encode64(File.new('path/to/img').read)

# 結果
=>"data:image/png;base64,iVBORw0KGgoAAAAN!~~省略~~5ErkJggg=="

コマンドを実行するとダダーっとエンコード文字列が表示されるので、それをブラウザに貼り付けると画像が表示されます。

なお、Base64.encode64メソッドだと改行文字列(\n)が追加されてしまってうまく動かずハマるので注意。

Base64.strict_encode64を使うと正しくdecodeできます。

参考

[まとめ] 現在開催中のKindleセール情報はこちら