画像を圧縮したい
はい、おはようございます。最近ブログにぺたぺた画像を貼り付けまくっている僕です。はてなブログはフリー版だとその容量に制限がありましてあんまり大きいサイズの画像を貼っているとよろしくないのですよね……。あと大きすぎる画像は読み込みに時間かかるのでよろしくないとも言われております。
なので、今日は画像圧縮について人によっては役に立つかもしれない何かを書こうと思います。
こういったサイトがあるそうです
使い方は画像を指定位置にドラッグアンドドロップするだけで高圧縮できます。
tinypng.com
おわり
はい。そういった使い方を書いてもサイト開いてこうすればできますよで終わってしまって面白くないので意味もなくAPI使います。
APIの登録に関してはこちらを参照ください。
TinyPNG – Developer API
ちゃんと登録できればAPIキー取得できます。
ここからどうするか途方に暮れていたんですが丁度APIリファレンスが分かりやすくまとまっていたので僕があれこれ試す必要なくてよかった。
tinypng.com
上のリファレンス見ながら適当にスクリプトを作ります。
アップロード用
# upload.sh # 指定したjpgファイルを読み込みアップロードする # 結果はresult.jsonに返す APIKEY=APIキー echo -n "FILE NAME: " read FILENAME curl https://api.tinify.com/shrink \ --user api:$APIKEY \ --data-binary @$FILENAME.jpg \ > result.json
ダウンロード用
# download.sh # アップロードしたresult.jsonにあるjpgファイルをダウンロードする # ダウンロード後のファイル名はmin.jpg APIKEY=APIキー URL=`cat result.json | jq .output | jq .url | sed 's/"//g'` curl $URL \ --user api:$APIKEY \ --output min.jpg
アップロードとダウンロード分けたけども一緒にしたい場合は適当に変数つくってつなげれば一括で処理できるかと思います。あとコメント書いた通り即席で作ったコードなのでかゆいところに届きません。その辺りはご利用状況に応じてカスタマイズしてやってください。
これでこんな感じに画像圧縮確認できました。すげー圧縮された……。
これで快適なブログ生活ができる準備ができました。やったね!まあ、ブログに画像あげるだけだったらAPI使う必要ないけどね……。
余談
シェルでJSONいじるのに何使えばいいかなと思って最終的にjqとかいう謎のコマンド使ってるんだけどもそれについてはこっちを見てほしい。
JQなるもの - コミュ障だから明日が僕らをよんだって返事もろくにしなかった