Class: Percept::RMagickImage

Inherits:
Image
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/percept/rmagick_image.rb

Instance Attribute Summary collapse

Attributes inherited from Image

#file_path

Instance Method Summary collapse

Methods inherited from Image

#checkbox_fields, #config, #fields, #filtered_lines, #get_pixels, #get_rows, #inspect, #lines, #magick_column, #retrieve_row, #to_s

Constructor Details

#initialize(file_path) ⇒ RMagickImage

Returns a new instance of RMagickImage.



11
12
13
# File 'lib/percept/rmagick_image.rb', line 11

def initialize(file_path)
  self.file_path = file_path
end

Instance Attribute Details

#sourceObject



15
16
17
# File 'lib/percept/rmagick_image.rb', line 15

def source
  @source ||= Magick::Image.read(file_path).first
end

Instance Method Details

#column_countObject



43
44
45
# File 'lib/percept/rmagick_image.rb', line 43

def column_count
  columns
end

#magick_rowsObject



25
26
27
28
29
# File 'lib/percept/rmagick_image.rb', line 25

def magick_rows
  @magick_rows ||= Array.new(row_count) do |row_number|
    source.get_pixels(0, row_number, column_count, 1)
  end
end

#pixelsObject



31
32
33
# File 'lib/percept/rmagick_image.rb', line 31

def pixels
  magick_rows.flatten
end

#retrieve_pixels(x, y, columns, rows) ⇒ Object



35
36
37
# File 'lib/percept/rmagick_image.rb', line 35

def retrieve_pixels(x, y, columns, rows)
  source.get_pixels(x, y, columns, rows)
end

#row_countObject



39
40
41
# File 'lib/percept/rmagick_image.rb', line 39

def row_count
  rows
end

#write(path) ⇒ Object



19
20
21
22
23
# File 'lib/percept/rmagick_image.rb', line 19

def write(path)
  dirname = File.dirname(path)
  FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
  source.write(path)
end