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

Instance Method Details

#closeObject



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

#formatObject



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

#geometryObject



31
32
33
# File 'lib/dimension/processors/vips.rb', line 31

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

#get_new_geometryObject



58
59
60
# File 'lib/dimension/processors/vips.rb', line 58

def get_new_geometry
  geometry
end

#imageObject



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_dataObject



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