Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

imagemagickでbase64

テキストしか送れない対象や、あるいは画像をテキスト化してリクエスト数を減らす等々の用途でbase64が使われるわけですが……imagemagickでも、そのbase64を使用する事が可能

実際のところ

組み込み画像roseをrose.base64というファイルで保存

$ convert rose: inline:rose.base64

中のファイルはこんな風になっています

data:image/x-portable-pixmap;base64,UDYKNzAgNDYKMjU1CjAvLTIwLjYyLzgzLjozLTkyLTgwLTkxLjgwLTgw ... U9NjZEL0dgNUdiPDpNOEBSOkhcQTRCMQ==

通常の画像様式ではないので、fehで出力でみてもエラーがでるのみ

$ convert rose: inline:- | feh -
feh WARNING: /tmp/feh_stdin_VRm5s2 - No Imlib2 loader for that file format
feh: No loadable images specified.
See 'man feh' for detailed usage information

2022/09/16追記:インラインイメージ(Data URI)として使いたいならPNGである事を明記する

上記の例はJPEGで出力されています。
これを埋込にすると面倒なので、インラインで明示的にPNGであることを書いておきましょう
ついでに

$ convert rose: inline:png:-
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA ... daa:/