読者です 読者をやめる 読者になる 読者になる

元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

CarrierWave + TinyPNG によるお手軽画像最適化gem

CarrierWaveにTinyPNG APIによる画像最適化Processorを追加するgemが必要になったので作りました。

f:id:uzuki05:20150312195813p:plain

せっかくなので公開しておきます。

rubygems

carrierwave-tinypng | RubyGems.org | your community gem host

GitHub

takeyuweb/carrierwave-tinypng · GitHub

What's CarrierWave-TinyPNG gem

CarrierWave で

  include CarrierWave::TinyPNG
  process :tinypng

とするだけで TinyPNG API を使って画像の最適化するようになるgemです。

転送量節約の役に立つかもしれません。

TinyPNG

TinyPNG – Compress PNG images while preserving transparency

CarrierWave

carrierwaveuploader/carrierwave · GitHub

Installation

Add this line to your application's Gemfile:

gem 'carrierwave-tinypng'

And then execute:

$ bundle

Or install it yourself as:

$ gem install carrierwave-tinypng

Usage

config/initializers/carrierwave.rb

CarrierWave::TinyPNG.configure do |config|
  config.key = ENV['TINYPNG_KEY']
end

app/uploaders/your_uploader.rb

class YourUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick
  include CarrierWave::TinyPNG
  process convert: 'png'
  process :tinypng
end

Contributing

  1. Fork it ( https://github.com/takeyuweb/carrierwave-tinypng/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request