class Image < Object (class and instance methods, part 2)
mixes in Comparable

Table of Contents

instance methods

instance methods

enhance

image.enhance -> anImage

Description

Applies a digital filter that improves the quality of a noisy image.

Returns

A new image

Example

The left-hand side has had noise added by add_noise. The right-hand side is the result after using enhance.

enhance example

See also

median_filter, reduce_noise, unsharp_mask

Magick API

EnhanceImage

equalize

image.equalize -> anImage

Description

Applies a histogram equalization to the image.

Returns

A new image

Example

equalize example

Magick API

EqualizeImage

erase!

image.erase! -> image

Description

Sets the entire image to the background color.

Returns

self

See also

color_reset!

Magick API

SetImage

export_pixels

image.export_pixels(x=0, y=0, columns=image.columns, rows=image.rows, map="RGB") -> anArray

Description

Extracts the pixel data from the specified rectangle and returns it as an array of Integer values.

The array returned by export_pixels is suitable for use as an argument to import_pixels.

Arguments

x, y
The offset of the rectangle from the upper-left corner of the image.
columns, rows
The width and height of the rectangle.
map
A string that describes which pixel channel data is desired and the order in which it should be stored. It can be any combination or order of R = red, G = green, B = blue, A = alpha, C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), or P = pad.

Returns

An array

Example

# Export the r'th scanline from an image in red-green-blue order
scanline = img.export_pixels(0, r, img.columns, 1, "RGB");

See also

dispatch, export_pixels_to_str, import_pixels, get_pixels

Magick API

ExportImagePixels

Note

This method replaces the dispatch method.

export_pixels_to_str

image.export_pixels_to_str(x=0, y=0, columns=image.columns, rows=image.rows, map="RGB", type=Magick::CharPixel) -> aString

Description

Extracts the pixel data from the specified rectangle and returns it as a string. If you need to get the pixel data in a memory buffer (as input to another application, for example), this method is much, much faster than export_pixels or get_pixels.

The string returned by export_pixels_to_str is suitable for use as an argument to import_pixels.

Note: You can also use to_blob to convert an image into a string.

Arguments

x, y
The offset of the rectangle from the upper-left corner of the image.
columns, rows
The width and height of the rectangle.
map
A string that describes which pixel channel data is desired and the order in which it should be stored. It can be any combination or order of R = red, G = green, B = blue, A = alpha, C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), or P = pad.
type
A StorageType value that specifies the C datatype to which the pixel data will be converted. The default is CharPixel, which means that the pixel values will be stored as C unsigned chars.

Returns

A string

See also

dispatch, export_pixels, import_pixels, get_pixels

Magick API

ExportImagePixels

find_similar_region

image.find_similar_region(target, x=0, y=0) -> [rx, ry]

Description

This interesting method searches for a rectangle in the image that is similar to the target. For the rectangle to be similar each pixel in the rectangle must match the corresponding pixel in the target image within the range specified by the fuzz attributes of the image and the target image.

Arguments

target
An image that forms the target of the search. This image can be any size.
x, y
The starting x- and y-offsets for the search. If omitted both x and y default to 0.

Returns

If the search succeeds, the return value is an array with 2 elements. These elements are the x- and y-offsets of the matching rectangle. If the search fails the return value is nil.

Magick API

IsImageSimilar (available in ImageMagick 6.2.8)

flip

image.flip -> anImage

Description

Create a vertical mirror image of the receiver.

Returns

A new image

Example

flip example

See also

affine_transform, flip!, flop, rotate, transpose, transverse

Magick API

FlipImage

flip!

image.flip! -> image

Description

In-place form of flip.

Returns

self

flop

image.flop -> anImage

Description

Create a horizontal mirror image of the receiver.

Returns

A new image

Example

flop example

See also

affine_transform, flip, flop!, rotate, transpose, transverse

Magick API

FlopImage

flop!

image.flop! -> image

Description

In-place form of flop.

Returns

self

frame

image.frame(width=25, height=25, x=25, y=25, inner_bevel=6, outer_bevel=6, color=matte_color) -> anImage

Description

Adds a simulated 3D border.

Arguments

width
The width of the left and right sides.
height
The height of the top and bottom sides.
x, y
The image does not have to be centered in the border. These two arguments specify the offset of the image from the upper-left outside corner of the border.
inner_bevel, outer_bevel
The width of the inner and outer shadows of the border. These values should be much smaller than the width and height and cannot be greater than 1/2 the lesser of the width or height.
color
The border color. By default the color is the matte color.

Returns

A new image

Example

frame example

See also

border

Magick API

FrameImage

freeze

image.freeze -> self

Description

Prevent further modifications to the image.

Returns

self

gamma_channel

image.gamma_channel(gamma, [channel...]) = anImage

Description

Gamma-correct a particular image channel. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen.

Arguments

gamma
Values typically range from 0.8 to 2.3. You can also reduce the influence of a particular channel with a gamma value of 0.
channel...
0 or more ChannelType arguments. If no channels are specified, all the channels are corrected using the gamma value.

Returns

A new image

See also

The older gamma_correct method is implemented in terms of gamma_channel.

Magick API

GammaImageChannel

gamma_correct

image.gamma_correct(red_gamma[,green_gamma[, blue_gamma]]) -> anImage

Description

Gamma-correct an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen.

Arguments

You must specify at least red_gamma. Omitted arguments take on the value of the last specified argument. Values typically range from 0.8 to 2.3.

Returns

A new image

See also

gamma_channel

Magick API

GammaImage

gaussian_blur

image.gaussian_blur(radius=0.0, sigma=1.0) -> anImage

Description

Blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma).

Arguments

radius
A Float value representing the radius of the Gaussian, in pixels, not counting the center pixel.
sigma
A Float value representing the standard deviation of the Gaussian operator, in pixels. This argument must be > 0.0.

Returns

A new image

Example

gaussian_blur(0.0, 3.0)

gaussian_blur example

See also

blur_image, motion_blur, radial_blur

Magick API

GaussianBlurImage

gaussian_blur_channel

image.gaussian_blur_channel(radius=0.0, sigma=1.0[, channel...]) -> anImage

Description

Blurs the selected channel or channels using a Gaussian operator of the specified radius and standard deviation.

Arguments

radius
A Float value representing the radius of the Gaussian, in pixels, not counting the center pixel.
sigma
A Float value representing the standard deviation of the Gaussian operator, in pixels. This argument must be > 0.0.
channel...
0 or more ChannelType arguments. If no channels are specified, all the channels are blurred. This is the same as using gaussian_blur.

Returns

A new image

See also

blur_channel

Magick API

GaussianBlurImageChannel (available in ImageMagick 6.0.0)

get_exif_by_entry

image.get_exif_by_entry([name]*) -> anArray

Description

Returns the value associated with the specified EXIF entry name or names. If no names are specified, returns all the entries. The return value is an array containing one or more [name, value] elements.

Arguments

Zero or more EXIF entry names.

Returns

The elements in the returned array are 2-element arrays in the form [name, value]. If ×Magick does not know the name for an entry it uses "unknown." There may be more than one entry for "unknown" in the returned array. If there is no entry with the specified name the value is set to nil.

Example

image.get_exif_by_entry('Make') » [["Make", "Canon"]]
image.get_exif_by_entry("ShutterSpeedValue") »
    [["ShutterSpeedValue", "189/32"]]
image.get_exif_by_entry() »
    [["Make", "Canon"], ["ShutterSpeedValue", "189/32"] ...]

See also

get_exif_by_number

get_exif_by_number

image.get_exif_by_number([tag]*) -> aHash

Description

Returns the value associated with the specified EXIF tag number or numbers. If no numbers are specified, returns all the tags. The return value is a hash. The hash keys are EXIF tag numbers. The values are the values associated with the tags.

Arguments

Zero or more EXIF tag numbers.

Returns

A hash. If there is no tag with the specified number the value is set to nil.

Example

image.get_exif_by_number(271) » {271=>"Canon"}
image.get_exif_by_number(37377) » {37377=>"189/32"}
image.get_exif_by_number() »
    {271=>"Canon", 37377=>"189/32" ...}

See also

get_exif_by_entry

get_iptc_dataset

image.get_iptc_dataset(ds) -> aString

Description

Retrieves the data field for the specified DataSet, or nil if the DataSet is not used or the data field has length 0.

Arguments

RMagick defines the following constants for use as arguments to this method. All the constants are in the Magick::IPTC namespace. Notice that some DataSets have two names.

Constant Record:DataSet
Envelope::Model_Version 1:00
Envelope::Destination 1:05
Envelope::UNO 1:100
Envelope::Unique_Name_of_Object 1:100
Envelope::ARM_Identifier 1:120
Envelope::ARM_Version 1:122
Envelope::File_Format 1:20
Envelope::File_Format_Version 1:22
Envelope::Service_Identifier 1:30
Envelope::Envelope_Number 1:40
Envelope::Product_ID 1:50
Envelope::Envelope_Priority 1:60
Envelope::Date_Sent 1:70
Envelope::Time_Sent 1:80
Envelope::Coded_Character_Set 1:90
Application::Object_Type_Reference 2:03
Application::Object_Name 2:05
Application::Title 2:05
Application::Edit_Status 2:07
Application::Editorial_Update 2:08
Application::Urgency 2:10
Application::Country_Primary_Location_Code 2:100
Application::Country_Primary_Location_Name 2:101
Application::Original_Transmission_Reference 2:103
Application::Headline 2:105
Application::Credit 2:110
Application::Source 2:115
Application::Copyright_Notice 2:116
Application::Contact 2:118
Application::Subject_Reference 2:12
Application::Abstract 2:120
Application::Caption 2:120
Application::Caption_Writer 2:122
Application::Editor 2:122
Application::Rasterized_Caption 2:125
Application::Image_Type 2:130
Application::Image_Orientation 2:131
Application::Language_Identifier 2:135
Application::Category 2:15
Application::Audio_Type 2:150
Application::Audio_Sampling_Rate 2:151
Application::Audio_Sampling_Resolution 2:152
Application::Audio_Duration 2:153
Application::Audio_Outcue 2:154
Application::Supplemental_Category 2:20
Application::ObjectData_Preview_File_Format 2:200
Application::ObjectData_Preview_File_Format_Version 2:201
Application::ObjectData_Preview_Data 2:202
Application::Fixture_Identifier 2:22
Application::Keywords 2:25
Application::Content_Location_Code 2:26
Application::Content_Location_Name 2:27
Application::Release_Date 2:30
Application::Release_Time 2:35
Application::Expiration_Time 2:35
Application::Expiration_Date 2:37
Application::Special_Instructions 2:40
Application::Action_Advised 2:42
Application::Reference_Service 2:45
Application::Reference_Date 2:47
Application::Reference_Number 2:50
Application::Date_Created 2:55
Application::Time_Created 2:60
Application::Digital_Creation_Date 2:62
Application::Digital_Creation_Time 2:63
Application::Originating_Program 2:65
Application::Program_Version 2:70
Application::Object_Cycle 2:75
Application::Author 2:80
Application::By_Line 2:80
Application::Author_Position 2:85
Application::By_Line_Title 2:85
Application::City 2:90
Application::Sub_Location 2:92
Application::Province 2:95
Application::State 2:95
Pre_ObjectData_Descriptor::Size_Mode 7:10
Pre_ObjectData_Descriptor::Max_Subfile_Size 7:20
Pre_ObjectData_Descriptor::ObjectData_Size_Announced 7:90
Pre_ObjectData_Descriptor::Maximum_ObjectData_Size 7:95
ObjectData::Subfile 8:10
Post_ObjectData_Descriptor::Confirmed_ObjectData_Size 9:10

Example

img.get_iptc_dataset(Magick::IPTC::Application::Keywords)

Returns

The data field or nil

See also

each_iptc_dataset, iptc_profile

get_pixels

image.get_pixels(x, y, columns, rows) -> anArray

Description

Gets the pixels from the specified rectangle within the image.

Arguments

x, y
The x- and y-offset of the rectangle within the image.
columns, rows
The width and height of the rectangle.

Returns

An array of pixels. There will be columns*rows elements in the array.

Example

This example composites a black-and-white version of an image over the same image in its original colors. It uses get_pixels and store_pixels to make each column of pixels in the black-and-white image slightly more opaque than the column on its left, so that the resulting composite changes smoothly from color on the left to black-and-white on the right.

get_pixels example

See also

store_pixels, view

Magick API

AcquireImagePixels

gray?

image.gray? -> true or false

Description

Returns true if all the pixels in the image have the same red, green, and blue intensities.

Returns

true or false

See also

monochrome?

Magick API

IsGrayImage

grayscale_pseudo_class

image.grayscale_pseudo_class(optimize=true) -> anImage

Description

Converts an image to a PseudoClass grayscale representation with an optionally compressed and sorted colormap.. This method is only available in GraphicsMagick 1.1 and later.

Arguments

optimize
If true, compress and sort the colormap by increasing intensity.

Returns

A new image

Magick API

GrayscalePseudoClass

grey?

image.qrey? -> true or false

Description

Synonym for gray?

implode

image.implode(amount=0.50) -> anImage

Description

A funhouse mirror effect. See the example below.

Arguments

A Float value. Increasing the absolute value of the argument increases the effect. The value may be positive for implosion, or negative for explosion. The default is 0.50.

Returns

A new image

Example

This example is an animated image. Mouse over the image to start the animation.

implode example

Magick API

ImplodeImage

import_pixels

image.import_pixels(x, y, columns, rows, map, pixels, type=Magick::CharPixel) -> image

Description

Replaces the pixels in the specified rectangle with pixel data from the supplied array or string. When the pixels argument is an array of pixel data, this method is the reverse of export_pixels. When the pixels argument is a string, import_pixels is ideal for loading very large amounts of binary pixel data.

Arguments

x, y
The offset of the rectangle from the upper-left corner of the image
columns, rows
The width and height of the rectangle
map
A string describing the expected ordering of the pixel array. It can be any combination or order of R = red, G = green, B = blue, A = alpha, C = cyan, Y = yellow, M = magenta, K = black, or I = intensity (for grayscale).
pixels
The pixel data. Pixel data can be supplied as an array or as a string.
If pixels responds to :to_str
import_pixels assumes that pixels can be converted to a string by to_str and that the result is a C array of the type specified by type containing binary pixel data in the order specified by map. The elements in the buffer must be in the range specified by type.
Otherwise
import_pixels assumes that pixels is an array or an object that can be converted to an array by the Kernel::Array method. The elements in the array must be Numeric values in the range [0..MaxRGB]. In either case, the pixel data must be stored in scanline order: left-to-right and top-to-bottom.
type
A StorageType value that specifies the type and range of the pixel data when pixels is a string.

Returns

The image as transformed by the pixel data.

Example

# Replace the r'th scanline of the image using
# pixel data stored in red-green-blue order.
img.import_pixels(0, r, img.columns, 1, "RGB", scanline);

Example

This example is contrived since there's no need to convert the pixels array into a string by calling pack, but it does demonstrate the use of a string pixels argument. Note that this example assumes that ×Magick is configured with QuantumDepth=8.

hat = Magick::Image.read("Flower_Hat.jpg").first
pixels = hat.export_pixels(0, 0, hat.columns, hat.rows, "RGB")
char_buffer = pixels.pack("C*")
img = Magick::Image.new(hat.columns, hat.rows)
img.import_pixels(0, 0, hat.columns, hat.rows, "RGB", char_buffer, Magick::CharPixel)

See also

constitute, export_pixels, store_pixels

Magick API

ImportImagePixels

Note

This method replaces the constitute method.

inspect

image.inspect -> aString

Description

Constructs a description of the image as a string. The string contains some or all of the following fields:

original_filename=>
if different from the current filename.
filename
the current filename
[scene]
the scene number, if the image is part of an image sequence
format
the image format (GIF or JPEG, for example)
original width x height
if different from the current width x height
page width x height + x-offset + y-offset
if any of these fields is non-zero
storage class
DirectClass or PseudoClass
number of colors
total number of colors used in the image
mean error per pixel/normalized mean error/normalized maximum error
for PseudoClass images, if present
N-bit
bit depth
blob size
if present

Example

f.inspect » "images/Flower_Hat.jpg JPEG 200x250 DirectClass 8-bit 9kb"

level

image.level(black_point=0.0, white_point=MaxRGB, gamma=1.0) -> anImage

Description

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Gamma specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value

Arguments

black_point
A black point level in the range 0-MaxRGB. The default is 0.0.
mid_point
A white point level in the range 0-MaxRGB. The default is MaxRGB - black_point.
gamma
A gamma correction in the range 0.0-10.0 The default is 1.0.

Returns

A new image

Example

level(0,1.50)

level example

Compatibility notes

Prior to version 1.11.0 RMagick defined the signature for level incorrectly:

img.level(white_point, gamma, black_point) -> anImage # wrong!

That is, the gamma and white_point arguments were swapped. In an effort to maintain compatibility with older scripts that expect that signature, level inspects its arguments and will interchange white_point and gamma if they "look" incorrect. That is, if gamma is > 10.0, or if white_point is < 10.0, or if gamma > white_point, then level will swap them.

If you want to avoid this behavior, use the level2 method instead. The level2 method is exactly the same as level except that it never swaps the arguments.

See also

level_channel

Magick API

LevelImage

level_channel

image.level_channel(channel, black_point=0, white_point=MaxRGB - black_point, gamma=1.0) -> anImage

Description

Same as level but operates only on the specified channel.

Arguments

channel
A ChannelType value.
black_point
A black point level in the range 0-MaxRGB. The default is 0.0.
mid_point
A white point level in the range 0-MaxRGB. The default is MaxRGB - black_point.
gamma
A gamma correction in the range 0.0-10.0 The default is 1.0.

Returns

A new image

See also

level

Magick API

LevelImageChannel

linear_stretch

image.linear_stretch(black_point[, white_point]) -> anImage

Description

Linear with saturation stretch.

Arguments

black_point
black out at most this many pixels. Specify an absolute number of pixels as a numeric value, or a percentage as a string in the form 'NN%'.
white_point
burn at most this many pixels. Specify an absolute number of pixels as a numeric value, or a percentage as a string in the form 'NN%'. This argument is optional. If not specified the default is all pixels - black_point pixels.

Returns

A new image

Magick API

LinearStretchImage

magnify

image.magnify -> anImage

Description

A convenience method that scales the receiver to twice its size.

Returns

A new image

See also

magnify!, minify, resize, scale

Magick API

MagnifyImage

magnify!

image.magnify! -> image

Description

In-place form of magnify

Returns

self

map

image.map(img, dither=false) -> anImage

Description

Replaces the colors of an image with the closest color from a reference image.

Arguments

img
The reference image. May be either another image or an Image object.
dither
If true, dithers the mapped image.

Returns

A new image

Example

This image has been mapped to the Netscape 216-color cube.

map_f example

See also

ImageList#map

Magick API

MapImage

matte_fill_to_border

image.matte_fill_to_border(x, y) -> anImage

Description

Makes transparent all the pixels that are neighbors of the pixel at x,y and are not the border color.

Arguments

The x- and y- coordinates of the target pixel.

Returns

A new image

Example

In this example the border color is black. The fill starts in the center and makes all the pixels transparent until it reaches a black pixel. The resulting image has been composited over a plasma background, which shows through the transparent pixels.

matte_fill_to_border example

See also

matte_floodfill, Draw#matte

Magick API

MatteFloodfillImage

matte_floodfill

image.matte_floodfill(x, y) -> anImage

Description

Makes transparent all the pixels that are the same color as the pixel at x, y, and are neighbors.

Arguments

The x- and y-coordinates of the target pixel.

Returns

A new image

Example

In this example the fill starts at the center pixel and replaces all the yellow pixels - the color of the center pixel. The resulting image has been composited over a plasma background, which shows through the transparent pixels.

matte_floodfill example

See also

matte_replace, Draw#matte

Magick API

MatteFloodfilImage

matte_point

image.matte_point(x, y) -> anImage

Description

Makes the pixel at x, y transparent. This method makes a copy of the image, just to make one pixel transparent. I recommend using the Draw#matte method instead.

Arguments

The x- and y-coordinates of the target pixel.

Returns

A new image

See also

Draw#matte

matte_replace

image.matte_replace(x, y) -> anImage

Description

Makes transparent all the pixels that are the same color as the pixel at x, y.

Arguments

The x- and y-coordinates of the target pixel.

Returns

A new image

Example

In this example the target pixel is a black pixel in the center of the uppermost circle. The matte_replace method makes all the black pixels in the image transparent. The resulting image has been composited over a plasma background, which shows through the transparent pixels.

matte_replace example

See also

transparent, Draw#matte

Magick API

TransparentImage

matte_reset!

image.matte_reset! -> image

Description

Makes all the pixels in the image transparent.

Returns

self

See also

opacity=

Magick API

SetImageOpacity

median_filter

image.median_filter(radius=1.0) -> anImage

Description

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Arguments

The filter radius. The larger the value, the longer it takes to render. Values larger than 8 or 9 may take longer than you want to wait, and will not have significantly better results than much smaller values.

Returns

A new image

Example

The left side of the image has been modified by add_noise. The right side has been filtered by median_filter(0.05).

median_filter example

See also

enhance, reduce_noise, unsharp_mask

Magick API

MedianFilterImage

minify

image.minify -> anImage

Description

A convenience method that scales the receiver to half its size.

Returns

A new image

See also

minify! magnify, resize, sample, scale, thumbnail

Magick API

MinifyImage

minify!

image.minify! -> image

Description

In-place form of minify.

Returns

self

modulate

image.modulate(brightness=1.0, saturation=1.0, hue=1.0) -> anImage

Description

Changes the brightness, saturation, and hue.

Arguments

The percent change in the brightness, saturation, and hue, represented as Float numbers. For example, 0.25 means "25%". All three arguments may be omitted. The default value of each argument is 1.0, that is, 100%.

Returns

A new image

Example

modulate(0.85)

modulate example

Magick API

ModulateImage

monochrome?

image.monochrome? -> true or false

Description

Returns true if all the pixels have the same red, green, and blue values and the values are either 0 or MaxRGB. That is, the image is black-and-white.

See also

gray?

Magick API

IsMonochromeImage

motion_blur

image.motion_blur(radius=0.0, sigma=1.0, angle=0.0) -> anImage

Description

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). Use a radius of 0 and motion_blur selects a suitable radius for you. Angle gives the angle of the blurring motion.

Arguments

radius
The radius of the Gaussian operator.
sigma
The standard deviation of the Gaussian operator. Must be non-0.
angle
The angle (in degrees) of the blurring motion.

Returns

A new image

Example

motion_blur example

See also

blur_image, gaussian_blur

Magick API

MotionBlurImage

negate

image.negate(grayscale=false) -> anImage

Description

Negates the colors in the receiver.

Arguments

If the grayscale argument is true, only the grayscale values are negated.

Returns

A new image

Example

negate example

See also

negate_channel

Magick API

NegateImage

negate_channel

image.negate_channel(grayscale=false, [channel...]) = anImage

Description

Negate a particular image channel or channels.

Arguments

grayscale
if true, only negate grayscale pixels within the image
channel...
0 or more ChannelType arguments. If no channels are specified, all the channels are negated. Specifying no channel arguments has the same effect as the negate method, above.

Returns

A new image

Example

negate_channel(false, GreenChannel)

negate_channel example

See also

negate

.

Magick API

NegateImageChannel

normalize

image.normalize -> anImage

Description

Enhances the contrast of a color image by adjusting the pixel color to span the entire range of colors available.

Returns

A new image

Example

normalize example

Magick API

NormalizeImage

See also

normalize_channel

normalize_channel

image.normalize_channel([channel...]) = anImage

Description

Enhances the contrast of a color image by adjusting the pixel color to span the entire range of colors available. Only the specified channels are normalized.

Arguments

channel...
0 or more ChannelType arguments. If no channels are specified, all the channels are normalized. Specifying no channel arguments has the same effect as the normalize method, above.

Returns

A new image

Magick API

NormalizeImageChannel (available in ImageMagick 6.1.0)

See also

normalize

oil_paint

image.oil_paint(radius=3.0) -> anImage

Description

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Returns

A new image

Example

oil_paint example

Magick API

OilPaintImage

opaque

image.opaque(target, fill) -> anImage

Description

Changes all pixels having the target color to the fill color.

Arguments

target
The color to be replaced. May be a color name or a Pixel
fill
The replacement color. May be a color name or a Pixel

Returns

A new image

Example

img.fuzz = 25
img = img.opaque('white', 'red')

See also

color_floodfill

Magick API

OpaqueImage

opaque?

image.opaque? -> true or false

Description

Returns true if all of the pixels in the receiver have an opacity value of OpaqueOpacity.

Returns

true or false

Magick API

IsOpaqueImage

ordered_dither

image.ordered_dither(threshold_map='2x2') -> anImage

Description

Dithers the image to a predefined pattern. The threshold_map argument defines the pattern to use.

Arguments

The threshold_map argument can be any of the strings listed by this command:

convert -list Thresholds

GraphicsMagick and older releases of ImageMagick do not accept threshold map strings and will not respond to that command. In these cases threshold_map should be one of the numbers 2, 3, or 4. These numbers correspond to the threshold maps "o2x2", "o3x3", and "o4x4", respectively.

Returns

A new image

Example

ordered_dither example

See also

posterize, quantize

Magick API

OrderedPosterizeImage

palette?

image.palette? -> true or false

Description

Returns true if the image is PseudoClass and has 256 unique colors or less.

Returns

true or false

Magick API

IsPaletteImage

pixel_color

image.pixel_color(x, y[, new_color]) -> aPixel

Description

Returns the color of the pixel at x, y. Optionally, changes the color of the pixel to a new color.

If new_color is specified, pixel_color changes the image type to DirectClass if necessary.

Arguments

x, y
The x- and y-coordinates of the pixel.
new_color
If specified, the pixel is set to this color. May be either a color name or a Pixel.

Returns

A Pixel having the RGB values of the specified pixel.

Example

old = image.pixel_color(20,40,"white")

Magick API

AcquireImagePixels

polaroid

image.polaroid(angle=-5.0) [ { optional arguments } ] -> anImage

Description

Produce an image that looks like a Polaroid® instant picture. If the image has a "Caption" property, the value is used as a caption.

Optional arguments may be specified in a block associated with the method. These arguments control the shadow color and how the label is rendered. By default the shadow color is gray75. To specify a different shadow color, use self.shadow_color. The argument can be either a color name or a Pixel.

The following annotate attributes control the label rendering: align, decorate, density, encoding, fill, font, font_family, font_stretch, font_style, font_weight, gravity, pointsize, stroke, stroke_width, text_antialias, undercolor.

img.polaroid do
   self.shadow_color = "gray40"
   self.pointsize = 12
end

Polaroid is a registered trademark of the Polaroid Corporation.

Arguments

angle
The resulting image is rotated by this amount, measured in degrees. The default is -5.0.

Example

polaroid example

Magick API

PolaroidImage (introduced in ImageMagick 6.3.1)

See also

The Polaroid Effect

posterize

image.posterize(levels=4, dither=false) -> anImage

Description

Reduces the image to a limited number of colors for a "poster" effect.

Arguments

levels
Number of color levels allowed in each channel. Very low values (2, 3, or 4) have the most visible effect. The default is 4.
dither
If true, dither the image. The default is false.

Returns

A new image

Example

posterize example

See also

ordered_dither, quantize

Magick API

PosterizeImage