Module: VipsProcessor
- Defined in:
- lib/dimension/processors/vips.rb
Constant Summary collapse
- FORMAT_OPTS =
{ 'jpeg' => { :quality => 0.9 }, 'png' => { :compression => 6, :interlace => false } }
- SHARPEN_MASK =
begin conv_mask = [ [ -1, -1, -1 ], [ -1, 24, -1 ], [ -1, -1, -1 ] ] ::VIPS::Mask.new conv_mask, 16 end
Instance Method Summary collapse
- #close ⇒ Object
- #format ⇒ Object
- #geometry ⇒ Object
- #get_new_geometry ⇒ Object
- #image ⇒ Object
- #image_data ⇒ Object
- #save! ⇒ Object
- #save_as(new_file_path) ⇒ Object
Instance Method Details
#close ⇒ Object
53 54 55 56 57 58 |
# File 'lib/dimension/processors/vips.rb', line 53 def close log "Closing image and cutting thread..." @image = nil VIPS::thread_shutdown # image.delete!(true) # free image, and de-cache it too end |
#format ⇒ Object
37 38 39 |
# File 'lib/dimension/processors/vips.rb', line 37 def format file[/.png$/] ? 'png' : file[/jpe?g$/] ? 'jpeg' : File.extname(file).sub('.', '') end |
#geometry ⇒ Object
33 34 35 |
# File 'lib/dimension/processors/vips.rb', line 33 def geometry [image.x_size, image.y_size] end |
#get_new_geometry ⇒ Object
60 61 62 |
# File 'lib/dimension/processors/vips.rb', line 60 def get_new_geometry geometry end |
#image ⇒ Object
23 24 25 26 27 28 29 30 31 |
# File 'lib/dimension/processors/vips.rb', line 23 def image @image ||= if format == 'jpeg' VIPS::Image.jpeg(@file, :sequential => true) elsif format == 'png' VIPS::Image.png(@file, :sequential => true) else VIPS::Image.new(@file) end end |
#image_data ⇒ Object
41 42 43 |
# File 'lib/dimension/processors/vips.rb', line 41 def image_data writer.to_memory end |
#save! ⇒ Object
49 50 51 |
# File 'lib/dimension/processors/vips.rb', line 49 def save! save(file) end |
#save_as(new_file_path) ⇒ Object
45 46 47 |
# File 'lib/dimension/processors/vips.rb', line 45 def save_as(new_file_path) save(new_file_path) end |