Class Magick::Image::View
In: lib/RMagick.rb
Parent: Object
Enum GeometryValue Stylable RVG\n[lib/rvg/clippath.rb\nlib/rvg/container.rb\nlib/rvg/deep_equal.rb\nlib/rvg/describable.rb\nlib/rvg/embellishable.rb\nlib/rvg/misc.rb\nlib/rvg/paint.rb\nlib/rvg/pathdata.rb\nlib/rvg/rvg.rb\nlib/rvg/stretchable.rb\nlib/rvg/stylable.rb\nlib/rvg/text.rb\nlib/rvg/transformable.rb\nlib/rvg/units.rb] Transformable Stretchable Embellishable Describable Duplicatable Comparable Image ImageList Enumerable Geometry OptionalMethodArguments HatchFill Draw lib/rvg/paint.rb lib/RMagick.rb ObjectData Application Pre_ObjectData_Descriptor Envelope Post_ObjectData_Descriptor IPTC Magick dot/m_14_0.png

Methods

[]   new   sync   update  

Classes and Modules

Class Magick::Image::View::Pixels
Class Magick::Image::View::Rows

Attributes

dirty  [RW] 
height  [R] 
width  [R] 
x  [R] 
y  [R] 

Public Class methods

[Source]

      # File lib/RMagick.rb, line 1061
1061:         def initialize(img, x, y, width, height)
1062:             img.check_destroyed
1063:             if width <= 0 || height <= 0
1064:                 Kernel.raise ArgumentError, "invalid geometry (#{width}x#{height}+#{x}+#{y})"
1065:             end
1066:             if x < 0 || y < 0 || (x+width) > img.columns || (y+height) > img.rows
1067:                 Kernel.raise RangeError, "geometry (#{width}x#{height}+#{x}+#{y}) exceeds image boundary"
1068:             end
1069:             @view = img.get_pixels(x, y, width, height)
1070:             @img = img
1071:             @x = x
1072:             @y = y
1073:             @width = width
1074:             @height = height
1075:             @dirty = false
1076:         end

Public Instance methods

[Source]

      # File lib/RMagick.rb, line 1078
1078:         def [](*args)
1079:             rows = Rows.new(@view, @width, @height, args)
1080:             rows.add_observer(self)
1081:             return rows
1082:         end

Store changed pixels back to image

[Source]

      # File lib/RMagick.rb, line 1085
1085:         def sync(force=false)
1086:             @img.store_pixels(x, y, width, height, @view) if (@dirty || force)
1087:             return (@dirty || force)
1088:         end

Get update from Rows - if @dirty ever becomes true, don‘t change it back to false!

[Source]

      # File lib/RMagick.rb, line 1092
1092:         def update(rows)
1093:             @dirty = true
1094:             rows.delete_observer(self)      # No need to tell us again.
1095:             nil
1096:         end

[Validate]