image.enhance -> anImage
Applies a digital filter that improves the quality of a noisy image.
A new image
The left-hand side has had noise added by add_noise
. The right-hand side is the
result after using enhance
.
median_filter, reduce_noise, unsharp_mask
EnhanceImage
image.equalize -> anImage
Applies a histogram equalization to the image.
A new image
EqualizeImage
image.erase! -> image
image.export_pixels(x, y, columns, rows, map) -> anArray
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
.
String
reflecting the order of the pixel
data. 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).# Export the r'th scanline from an image in red-green-blue order scanline = img.export_pixels(0, r, img.columns, 1, "RGB");
dispatch, import_pixels, get_pixels
ExportImagePixels (available in ImageMagick 5.5.7 and GraphicsMagick 1.1)
This method replaces the dispatch
method.
image.flip -> anImage
Create a vertical mirror image of the receiver.
A new image
FlipImage
image.flip! -> image
image.flop -> anImage
Create a horizontal mirror image of the receiver.
A new image
FlopImage
image.flop! -> image
image.frame(width=25, height=25,
x=25, y=25,
inner_bevel=6, outer_bevel=6, color=matte_color
) ->
anImage
Adds a simulated 3D border.
A new image
FrameImage
image.gamma_channel(gamma, [channel[, channel...]] = anImage
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.
A new image
The older gamma_correct method is implemented in
terms of gamma_channel
.
GammaImageChannel (available in ImageMagick 6.0.0)
image.gamma_correct(red_gamma[,green_gamma[, blue_gamma[, opacity_gamma]]]) -> anImage
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.
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.
A new image
GammaImage
image.gaussian_blur(radius=0.0, sigma=1.0) -> anImage
Blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma).
Float
value representing the radius of the Gaussian, in pixels, not counting
the center pixel.Float
value representing the standard
deviation of the Gaussian operator, in pixels. This argument
must be > 0.0.A new image
gaussian_blur(0.0, 3.0)
blur_image, motion_blur, radial_blur
GaussianBlurImage
image.gaussian_blur_channel(radius=0.0, sigma=1.0[, channel[, channel...]) -> anImage
Blurs the selected channel or channels using a Gaussian operator of the specified radius and standard deviation.
Float
value representing the radius of the Gaussian, in pixels, not counting
the center pixel.Float
value representing the standard
deviation of the Gaussian operator, in pixels. This argument
must be > 0.0.A new image
image.get_exif_by_entry([name]*) -> anArray
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.
Zero or more EXIF entry names.
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
.
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"] ...]
image.get_exif_by_number([tag]*) -> aHash
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.
Zero or more EXIF tag numbers.
A hash. If there is no tag with the specified number the
value is set to nil
.
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" ...}
image.get_pixels(x, y, columns, rows) -> anArray
Gets the pixels from the specified rectangle within the image.
An array of pixels. There
will be columns*rows
elements in the array.
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.
AcquireImagePixels
image.gray? -> true
or false
Returns true
if all the pixels in the image
have the same red, green, and blue intensities.
true
or false
IsGrayImage
image.grayscale_pseudo_class(optimize=true
) ->
anImage
Converts an image to a PseudoClass grayscale representation with an optionally compressed and sorted colormap.. This method is available in GraphicsMagick 1.1.
A new image
GrayscalePseudoClass
image.qrey? -> true
or false
Synonym for gray?
image.implode(amount=0.50) -> anImage
A funhouse mirror effect. See the example below.
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.
A new image
This example is an animated image. Mouse over the image to start the animation.
ImplodeImage
image.import_pixels(x, y, columns, rows, map, pixels) -> image
Replaces the pixels in the specified rectangle with pixel
data from the supplied array. This method is the reverse of
export_pixels
.
Numeric
values
in the range [0..MaxRGB]. The easiest way to obtain such an
array is by using the export_pixels
method.The image as transformed by the pixel data.
# 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);
constitute, export_pixels, store_pixels
ImportImagePixels (available in ImageMagick 5.5.7 and GraphicsMagick 1.1)
This method replaces the constitute
method.
image.inspect -> aString
Constructs a description of the image as a string. The string contains some or all of the following fields:
f.inspect » "images/Flower_Hat.jpg JPEG 200x250 DirectClass 8-bit 9kb"
image.level(black_point=0.0
, mid_point=1.0
, white_point=MaxRGB
) ->
anImage
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. Mid point 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.
A new image
level(0,1.50)
LevelImage
image.level_channel(channel, black_point=0.0
, mid_point=1.0
, white_point=MaxRGB
) ->
anImage
level
but operates
only on the specified channel.
A new image
LevelImageChannel (available in ImageMagick 5.5.3)
image.magnify -> anImage
A convenience method that scales the receiver to twice its size.
A new image
magnify!, minify, resize, scale, sample, thumbnail
MagnifyImage
image.magnify! -> image
image.map(img, dither=false
) ->
anImage
Replaces the colors of an image with the closest color from a reference image.
Image
object.true
, dithers the mapped image.A new image
This image has been mapped to the Netscape 216-color cube.
MapImage
image.matte_fill_to_border(x, y) -> anImage
Makes transparent all the pixels that are neighbors of the pixel at x,y and are not the border color.
The x- and y- coordinates of the target pixel.
A new image
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.
MatteFloodfillImage
image.matte_floodfill(x, y) -> anImage
Makes transparent all the pixels that are the same color as the pixel at x, y, and are neighbors.
The x- and y-coordinates of the target pixel.
A new image
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.
MatteFloodfilImage
image.matte_point(x, y) -> anImage
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.
The x- and y-coordinates of the target pixel.
A new image
image.matte_replace(x, y) -> anImage
Makes transparent all the pixels that are the same color as the pixel at x, y.
A new image
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.
TransparentImage
image.matte_reset! -> anImage
Makes all the pixels in the image transparent.
A new image
image.median_filter(radius=1.0) -> anImage
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.
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.
A new image
The left side of the image has been modified by add_noise
. The right
side has been filtered by
median_filter(0.05).
enhance, reduce_noise, unsharp_mask
MedianFilterImage
image.minify -> anImage
A convenience method that scales the receiver to half its size.
A new image
minify! magnify, resize, sample, scale, thumbnail
MinifyImage
image.minify! -> image
image.modulate(brightness=1.0, saturation=1.0, hue=1.0) -> anImage
Changes the brightness, saturation, and hue.
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%.
A new image
modulate(0.85)
ModulateImage
image.monochrome? ->
true
or false
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.
IsMonochromeImage
image.motion_blur(radius, sigma, angle) -> anImage
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.
A new image
MotionBlurImage
image.negate(grayscale=false
) ->
anImage
Negates the colors in the receiver.
A new image
NegateImage
image.negate_channel(grayscale=false
, [channel[, channel...]] =
anImage
Negate a particular image channel or channels.
true
, only negate
grayscale pixels within the imagenegate
method, above.A new image
negate_channel(false, GreenChannel)
NegateImageChannel (available in ImageMagick 6.0.0)
image.normalize -> anImage
Enhances the contrast of a color image by adjusting the pixel color to span the entire range of colors available.
A new image
NormalizeImage
image.normalize_channel([channel[, channel...]]) = anImage
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.
normalize
method, above.A new image
NormalizeImageChannel (available in ImageMagick 6.1.0)
image.oil_paint(radius=3.0) -> anImage
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.
A new image
OilPaintImage
image.opaque(target, fill) -> anImage
Changes all pixels having the target color to the fill color.
Pixel
Pixel
A new image
This example replaces white pixels with red pixels. Set the
fuzz
attribute to specify how closely the target
pixels must match.
OpaqueImage
image.opaque? ->
true
or false
Returns true
if all of the pixels in the
receiver have an opacity value of OpaqueOpacity.
true
or false
IsOpaqueImage
image.ordered_dither -> anImage
Uses the ordered dithering technique of reducing color images to monochrome using positional information to retain as much information as possible.
A new image
OrderedDitherImage
image.palette? ->
true
or false
Returns true if the image is PseudoClass
and has
256 unique colors or less.
true
or false
IsPaletteImage
image.pixel_color(x, y[, new_color]) -> aPixel
Returns the color of the pixel at x, y. Optionally, changes the color of the pixel to a new color.
old = image.pixel_color(20,40,"white")
AcquireImagePixels
image.posterize(levels=4, dither=false
) ->
anImage
Reduces the image to a limited number of colors for a "poster" effect.
true
, dither the image. The default is
false
.A new image
PosterizeImage (available in ImageMagick 6.0.0)