hello-world
webエンジニアのメモ。とりあえずやってみる。

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

公開日時

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

twitter

画像URLは↓です。

https://images.ctfassets.net/z2fxe3vedtaj/2lVZHkdhhu2ZHbPyFO7ZYs/998f53f577d3ce4da689ae1accf38971/twitter.png

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

irbを起動

irb -r base64 -r open-uri

# 以下を入力
'data:image/png;base64,' + Base64.strict_encode64(open('https://images.ctfassets.net/z2fxe3vedtaj/2lVZHkdhhu2ZHbPyFO7ZYs/998f53f577d3ce4da689ae1accf38971/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できます。

参考


Related #Ruby

[Rails]find_or_create_byとfind_or_initialize_by

Rails4で確認。

capistranoで世代管理する際の注意点

最近、デプロイツールに capistranoを使っているのですが、世代管理の設定を勘違いしていたのでメモを残しておきます。

[rails]unicornでpryを使う

先日、pryでデバッグする という記事を書きましたが、こちらはrails server(フォアグランド)でアプリを立ち上げた際のデバッグ方法でした。