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

Instance Method Details

#closeObject



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

#formatObject



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

#geometryObject



33
34
35
# File 'lib/dimension/processors/vips.rb', line 33

def geometry
  [image.x_size, image.y_size]
end

#get_new_geometryObject



60
61
62
# File 'lib/dimension/processors/vips.rb', line 60

def get_new_geometry
  geometry
end

#imageObject



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_dataObject



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