世界を旅して暮らしたい放浪エンジニアブログ

Rubyを使ってTinypngのDeveloper APIで圧縮する方法

今までTinypngのWEBサイトから圧縮処理をしていましたが、rubyのスクリプトに変更

[ 目次 ]

はじめに

こんにちは、香港に住んでいるWEBデベロッパーのなかむ(@nakanakamu0828)です。

この記事は過去に運用していたブログからの移行記事になります。

今回は、TinypngのDeveloper APIを利用して圧縮処理を行います。
ツールとしてうまく組み込むことで圧縮処理の効率化を行い、サービスへの負荷を減らすことが目的です。
Rubyを使ってスクリプトを作成していきます。

API Keyの取得

まずはAPI KEYをTinypngの DEVELOPER API ページから発行します。

  1. 名前、メールアドレスを入力し、Get your API keyボタン押下
  2. 入力したメールアドレスにTinypngからメールが届きます。その中のURLをクリックし、認証を完了させます。
  3. ログイン後の画面にAPI KEYが表示されます

プロジェクト作成

それではサンプルプロジェクトを作成します。

$ mkdir -p tinify-sample
$ cd tinify-sample
$ touch Gemfile
$ echo 'source "https://rubygems.org"' >> Gemfile
$ echo 'gem "tinify"' >> Gemfile
$ bundle install --path vendor/bundler

続いてスクリプト(tinify.rb)を作成します。
以下の内容でファイルを作成してください。

# tinify.rb
require "bundler/setup"
require "tinify"
Tinify.key = ENV["TINIFY_API_KEY"]

return if ARGV.empty?

filepath = ARGV[0]
return unless File.exists?(filepath)

source = Tinify.from_file(filepath)
source.to_file(filepath)

スクリプト実行

最初に作成したTinypingのAPI KEYを指定してスクリプトを実行します。

  • 環境変数として TINIFY_API_KEY を指定します。
  • スクリプトの第1引数に圧縮したい画像のパスを指定します。
$ TINIFY_API_KEY=[API KEY] ruby lib/tinify.rb [filepath]

実行が完了したら画像が圧縮しているか確認します。
他にもネット上の画像を圧縮し、ローカルに保存する機能などが用意されています。色々な機能を利用し、あなたにあったツールとして利用しましょう。

前のページ

次のページ

Profile

なかむ🇭🇰Webデベロッパー

なかむ🇭🇰Webデベロッパー

香港在住4年目になるWEBエンジニアのなかむです。 現在は、LaravelやRailsを利用したWEB開発を中心にエンジニアをしています。 顧客は全て日本の企業になります。リモート開発にて各企業様の支援を行なっております

プロフィール詳細はこちら

Latest Posts