Module: DotDiff::Image::Cropper

Included in:
Snapshot
Defined in:
lib/dotdiff/image/cropper.rb

Instance Method Summary collapse

Instance Method Details

#crop_and_resave(element) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/dotdiff/image/cropper.rb', line 8

def crop_and_resave(element)
  image = load_image(fullscreen_file)
  image.crop!(
    element.rectangle.x.floor,
    element.rectangle.y.floor,
    width(element, image),
    height(element, image)
  )

  image.write(cropped_file)
end

#height(element, image) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/dotdiff/image/cropper.rb', line 24

def height(element, image)
  element_height = element.rectangle.height + element.rectangle.y
  image_height = image.rows

  if element_height > image_height
    image_height - element.rectangle.y
  else
    element.rectangle.height
  end
end

#load_image(file) ⇒ Object



20
21
22
# File 'lib/dotdiff/image/cropper.rb', line 20

def load_image(file)
  Magick::Image.read(file).first
end

#width(element, image) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/dotdiff/image/cropper.rb', line 35

def width(element, image)
  element_width = element.rectangle.width + element.rectangle.x
  image_width = image.columns

  if element_width > image_width
    image_width - element.rectangle.x
  else
    element.rectangle.width
  end
end