These classes are created by the Struct class and are used
to create objects used as attribute and argument values in
other RMagick classes. Like all the classes created by Struct,
these classes define both getter and setter methods for their
attributes. That is, for an attribute x both the
x
and x=
methods are defined.
The Pixel
and Geometry
classes
define additional constructors and conversion methods.
AffineMatrix.new(sx, rx, ry, sy, tx, ty) -> anAffineMatrix
An AffineMatrix object describes a coordinate transformation. This object is used as an argument to the Image#affine_transform, Image#composite_affine, and Draw#affine methods.
Chromaticity.new(red_primary, green_primary, blue_primary, white_point) -> aChromaticity
A Chromaticity object represents chromaticity values for the Image#chromaticity attribute.
The attribute values are Primary objects.
Geometry.new(width=nil, height=nil, x=nil, y=nil, flag=nil) -> aGeometry
Constructs a new Geometry
object. A
Geometry
object is the equivalent of a geometry string. A
Geometry
object can be used almost anywhere a
geometry string can be used.
A geometry string has the general form
"WxH+x+y[!@%<>]. In a Geometry
object, the
width
attribute specifies the W value. The
height
attribute specifies the H value. The
x
and y
attributes specify the x
and y values, respectively. If any of these attributes is
omitted the default is nil or 0.
The flag attribute is one of the constants shown here:
Constant name |
Geometry string flag |
Explanation |
PercentGeometry | % | Normally the attributes are treated as pixels. Use
this flag when the width and
height attributes represent
percentages. For example, 125x75 means 125% of
the height and 75% of the width. The x and
y attributes are not affected by this
flag. |
AspectGeometry | ! | Use this flag when you want to force the new image to
have exactly the size specified by the the
width and height
attributes. |
LessGeometry | < | Use this flag when you want to change the size of the image only if both its width and height are smaller the values specified by those attributes. The image size is changed proportionally. |
GreaterGeometry | > | Use this flag when you want to change the size of the image if either its width and height exceed the values specified by those attributes. The image size is changed proportionally. |
AreaGeometry | @ | This flag is useful only with a single
width attribute. When present, it means the
width attribute represents the total area of
the image in pixels. |
g = Magick::Geometry.new(100,200,nil,nil,Magick::AspectGeometry)
Geometry.from_s(string) -> aGeometry
Constructs a new Geometry
object from a
geometry string.
geometry.to_s() -> aString
Returns the string equivalent of the Geometry
object..
Pixel.new(red, green, blue, opacity) -> aPixel
Constructs a pixel object from the specified red, green, blue, and opacity intensities. The intensity is a number between 0 and MaxRGB.
Pixel.from_color(color_name) -> aPixel
Constructs a new Pixel object from the color name. Raises ArgumentError if the name is unknown.
Pixel.from_HSL(hue, saturation, luminosity) -> aPixel
Constructs a pixel object from the specified hue, saturation, and luminosity values.
pixel.fcmp(aPixel, fuzz=0.0,
colorspace=RGBColorspace) ->
true
or false
Returns true if the argument is the same color as pixel.
true
or false
pixel.intensity() -> anInteger
Returns the intensity of the pixel. The intensity is computed as 0.299*R+0.587*G+0.114*B.
pixel.to_color(compliance=AllCompliance, matte=false
, depth=QuantumDepth
) ->
aString
Returns the color name corresponding the the pixel values. If there is no such named color in the specified color standard, returns a string in the form "#RRGGBBOO" or, if the depth is 16, "#RRRRGGGGBBBBOOOO".
to_color
to search for a color name in any of
the 3 defined color standards.Compare this method to Image#to_color, in which the matte and depth values are taken from an image.
pixel.to_HSL -> anArray
Converts the RGB representation of the pixel to hue, saturation, and luminosity values.
An array of the form [hue, saturation,
luminosity]
.
Point.new(x, y) -> aPoint
The value of the pixels_per_em
attribute in
the TypeMetric struct returned by Draw#get_type_metrics is a
Point
object..
Primary.new(x, y, z) -> aPrimary
See class Chromaticity.
Rectangle.new(width, height, x, y) -> aRectangle
The value of the Image#tile_info and Image#bounding_box attributes.
Segment.new(x1, y1, x2, y2) -> aSegment
The Image#new and ImageList#new_image methods accept
a Fill
object as an optional third argument. A
Fill
object is an instance of a Fill
class. Fill classes are designed to support custom
background fills. Each Fill
class defines only
two methods, initialize
and fill
.
The initialize
method is called from the
application to create an instance of the fill class. It
accepts any arguments and does whatever is necessary to
create the fill. The fill
method is called from
the initialize method of the new image object, after the
image is completely initialized. The fill
method
gets the image as its only argument and sends whatever
methods are necessary to the image to fill the image's
background.
RMagick supplies three Fill classes,
HatchFill
,
GradientFill
, and
TextureFill
. These classes are
explained below. The HatchFill
class is intended
as an example of how to write a Fill
class and
is written in pure Ruby. You can read it in RMagick.rb.
GradientFill.new(x1, y1, x2, y2, start_color, end_color) -> aGradientFill
Creates a gradient fill. The x1, y1, and x2, y2 arguments describe either a line or a point. If x1 != x2 or y1 != y2, then the arguments describe the starting line for the gradient. The gradient will start with start_color at the starting line and gradually transform to end_color as the distance increases from the starting line.
If x1 == x2 and y1 == y2, the gradient radiates from the specified point, gradually transforming from start_color to end_color.
The line or point does not have to lie within the image bounds.
HatchFill.new(background_color, hatch_color='white', dist=10) -> aHatchFill
Creates a cross-hatched fill.
TextureFill.new(texture_image) -> aTextureFill
When an ×Magick function returns an error condition,
RMagick raises an ImageMagickError
exception.