RScale – ImageMagick-based image processing for Ruby
This is a simple image processing library for ruby scripts based on ImageMagick terminal tool. Allows you to define a set of image formats and its dimensions and generate thumbnails just with one call. It does not have any other features than making thumbnails, neither it keeps the original source. Rails 2/3 compatible.
-
Main page: github.com/sosedoff/rscale
-
ImageMagick: www.imagemagick.org
Installation
You have to install ImageMagick in order to use this library. To check installation run this command in terminal:
identify --version
Install via gem:
gem install rscale
Configuration
require 'rscale'
# Initial configuration
# This 'public' path has to be writable
RScale.configure do |c|
c.public = "PATH_TO_YOUR_OUTPUT_DIR"
end
# Lets add avatar format with 3 different sizes
RScale.format :avatar do |f|
f.url = '/static/:format/:style/:uuid_dir/:uuid.jpg' # optional
f.style :small, :size => '64x64'
f.style :medium, :size => '128x128'
f.style :large, :size => '256x256'
end
# Another format, generates 100x100 PNG thumbnails
RScale.format :profile do |f|
f.url = '/:format/:style/:uuid_dir/:uuid.png' # optional
f.style :default, :size => '100x200'
end
URL parameter is just a path to store generated thumbnails, relative to public path defined in configuration block. Available URL parameters:
-
:uuid 32-byte UUID string
-
:uuid_dir /xx/xx directory structure generated from uuid string
-
:md5 32-byte source image MD5 checksum
-
:time Unix timestamp
-
:extension Original extension of source image
-
:filename Original filename of source image
-
:format Name of user-defined format
-
:style Name of user-defined format style (ex. :small, :medium, :large)
Usage
path = '/tmp/.....' # path to the source image
result = RScale.image_for :avatar, path
# If source file cannot be processed result will always be null
unless result.nil?
# result will contain processed thumbnails with path relative to public path
result[:small] # 64x64
result[:medium] # 128x128
result[:large] # 256x256
end
Limitation
-
No support for AmazonS3/CloudFiles
-
No support for keeping source images
-
Only specific image dimensions (no relative Ax? sizes)
Authors
Dan Sosedoff, 2010