🐼

[Raycast] TinyPNGで手軽に画像を圧縮するRaycast拡張を作った

2022/09/04に公開

作ったもの

Finder で選択している画像ファイル(png, jpeg)をTinyPNGの API を使って圧縮する Raycast 拡張を作りました。

静的アセットとして使う画像をピンポイントで圧縮する際などに便利です。

元ネタは Alfred のこちらの拡張機能です。
Raycast でも使えたら便利だなと思い移植してみました。

実装コードは以下にあります。

https://github.com/raycast/extensions/blob/main/extensions/tinypng

使い方

TinyPNG の API Key の取得

最初に TinyPNG の developer アカウントを作成して API Key を取得します。

https://tinypng.com/developers

Developers ページのヘッダーのフォームに情報を入力すれば、ログイン用のマジックリンクが入力されたメールアドレスに送信されます。

ログイン後、アカウントページにて、API Key を発行します。

拡張機能のダウンロード・初期設定

Raycast Store から TinyPNG をインストールします

https://www.raycast.com/kawamataryo/tinypng

起動後、最初に API Key の設定欄が表示されるので、さきほどの Key を入力して保存します。

圧縮

圧縮したいファイルを Finder で選択肢して TinyPNG 拡張のCompress Imagesコマンドを実行すれば OK です。

選択した画像と同じディレクトリにcompressed-imagesというフォルダーが作られて、そこに圧縮済みの画像が生成されます。

複数選択して実行すれば複数の画像を一度に圧縮できます。

仕組み

Raycast の API で、Finder 上で選択しているファイルパスを取得し、そのパスを元に Tiny PNG の API へ画像ファイルを送信し、圧縮結果をダウンロードしています。

Raycast の API は簡潔で使いやすいです。

https://github.com/raycast/extensions/blob/main/extensions/tinypng/src/compressImages.ts#L14-L95

おわりに

是非使ってみてくださいー!
もし不具合ありましたら気軽に PR お願いします!

Discussion