HTTP Thubnailer Client
Ruby client to httpthumbnailer image thumbnailing, editing and format conversion HTTP API server.
Changelog
1.3.0
- added edits support
- better spec parsing and error handling
- using single thumbnail API if only one thumbnail spec defined
Installing
gem install httpthumbnailer-client
Usage
Ruby API
require 'httpthumbnailer-client'
data = File.read('image_file.jpg')
thumbnail = HTTPThumbnailerClient.new('http://localhost:3100').thumbnail(data, 'crop', 60, 30, 'jpeg')
thumbnail.mime_type
thumbnail.width
thumbnail.height
thumbnail.data
thumbnails = HTTPThumbnailerClient.new('http://localhost:3100').thumbnail(data) do
thumbnail 'crop', 60, 30, 'jpeg'
thumbnail 'crop', 80, 80, 'png'
thumbnail 'pad', 40, 40, 'png'
end
thumbnails[0].mime_type
thumbnails[0].width
thumbnails[0].height
thumbnails[0].data
thumbnails[1].mime_type
thumbnails[1].width
thumbnails[1].height
thumbnails[1].data
thumbnails[2].mime_type
thumbnails[2].width
thumbnails[2].height
thumbnails[2].data
thumbnails.input_mime_type
thumbnails.input_width
thumbnails.input_height
id = HTTPThumbnailerClient.new('http://localhost:3100').identify(data)
id.mime_type
id.width
id.height
id = HTTPThumbnailerClient.new('http://localhost:3100').with_headers('XID' => '123').identify(data)
id.mime_type
id.width
id.height
thumbnail = HTTPThumbnailerClient.new('http://localhost:3100').thumbnail(data, 'crop', 60, 30, 'jpeg') do
edit 'rotate', 90
edit 'pixelate', 0.3, 0.2, 0.4, 0.4
end
thumbnails = HTTPThumbnailerClient.new('http://localhost:3100').thumbnail(data) do
thumbnail 'crop', 60, 30, 'jpeg' do
edit 'rotate', 90
end
thumbnail 'crop', 80, 80, 'png' do
edit 'rotate', 270
edit 'pixelate', 0.3, 0.2, 0.4, 0.4
end
thumbnail 'pad', 40, 40, 'png'
end
For more details see RSpec for single thumbnail API and multipart API.
Note that when providing only one thumbnail specification using multipart API style the client will actually use single thumbnail API instead.
CLI tool
This gem provides httpthumbnailer-client
command line tool that can be used to thumbnail images via httpthumbnailer.
httpthumbnailer
cat image.jpg | httpthumbnailer-client
cat image.jpg | httpthumbnailer-client -t crop,100,200,png > thumbnail.png
cat image.jpg | httpthumbnailer-client -t crop,100,200,jpeg,quality:100 -t pad,200,200,png thumbnail1.jpg thumbnail2.png
cat image.jpg | httpthumbnailer-client -t 'fit,280,280,png!pixelate,0.3,0.2,0.4,0.4!rectangle,0.04,0.8,0.92,0.17,color:blue' > thumbnail.png
Contributing to HTTP Thubnailer Client
- Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
- Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
- Fork the project
- Start a feature/bugfix branch
- Commit and push until you are happy with your contribution
- Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
- Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
Copyright
Copyright (c) 2013 - 2015 Jakub Pastuszek. See LICENSE.txt for further details.