はじめに

小さい画像だったり、Markdown でパスを入れたくないときのために、画像を Base64 にエンコードして埋め込めるようにする Mac のクイックアクションを作ったので紹介します。

インストールと使い方

インストール

こちら をダウンロードして、解凍後、 埋め込み形式に変換.workflow をダブルクリックするとインストールができます。

使い方

Finder でイメージファイルを選択後、右クリック > クイックアクション > 埋め込み形式に変換 で実行することができます。

実行結果はクリップボードにコピーされた状態になっているので、貼り付けて使用してください。

作り方について

使いたいだけの人は特に必要ありませんが、詳細についてです。
一応、GitHub リポジトリ にしてあります。

Automator クイックアクション

このコマンドは Automator のクイックアクションとして作成しています。

Automator は macOS で色々と自動化するためのスクリプトなどを作れるアプリです。

その中でクイックアクションという右クリックのメニューから実行できるスクリプトがあり、それを利用しています。

クイックアクションでは macOS の機能を活用したアクションのほか、AppleScript や JavaScript、シェルスクリプトが実行できます。
今回はこの中のシェルスクリプト( Z Shell )を利用しています。

Bash でも良かったのですが、最新の macOS はデフォルトが Z Shell なので Z Shell で書いています。

コマンド

中身は Base64 にするための base64 と、改行文字を消すため tr 、書き出す文字列を出力するための echo とクリップボードにコピーするための pbcopy を使っています。

言葉で書くと複雑そうですが、コマンドは以下のような1行のコマンドです。

echo \<img\ src=\"data:image/png\;base64,$(base64 $1)\"\> | tr -d '\n' | pbcopy

これだけで、できています。
ターミナルなどから実行するには引数の $1 を画像のファイルパスにすれば動くと思います。

おわりに

はじめて Automator のアクション公開するんですけど、公開の仕方これでいいのかな…