Module: VipsProcessor
- Defined in:
- lib/dimension/processors/vips.rb
Constant Summary collapse
- FORMAT_OPTS =
{ 'jpeg' => { :quality => 0.9 }, 'png' => { :compression => 8, :interlace => false } }
- SHARPEN_MASK =
begin ::Vips::Image.new_from_array [ [ -1, -1, -1 ], [ -1, 24, -1 ], [ -1, -1, -1 ] ], 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
51 52 53 54 55 56 |
# File 'lib/dimension/processors/vips.rb', line 51 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
35 36 37 |
# File 'lib/dimension/processors/vips.rb', line 35 def format file[/.png$/] ? 'png' : file[/jpe?g$/] ? 'jpeg' : File.extname(file).sub('.', '') end |
#geometry ⇒ Object
31 32 33 |
# File 'lib/dimension/processors/vips.rb', line 31 def geometry [image.x_size, image.y_size] end |
#get_new_geometry ⇒ Object
58 59 60 |
# File 'lib/dimension/processors/vips.rb', line 58 def get_new_geometry geometry end |
#image ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/dimension/processors/vips.rb', line 21 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
39 40 41 |
# File 'lib/dimension/processors/vips.rb', line 39 def image_data writer.to_memory end |
#save! ⇒ Object
47 48 49 |
# File 'lib/dimension/processors/vips.rb', line 47 def save! save(file) end |
#save_as(new_file_path) ⇒ Object
43 44 45 |
# File 'lib/dimension/processors/vips.rb', line 43 def save_as(new_file_path) save(new_file_path) end |