Image.capture(silent=false
, frame=false
, descend=false
, screen=false
, borders=false
) [ { optional arguments } ] ->
anImage
Reads an image from an X window. Unless you identify a
window to capture via the optional arguments block,
when capture
is invoked the cursor will turn into
a cross. Click the cursor on the window to be captured.
Within the optional arguments block, specify
self.filename = "root"
to capture the entire
desktop. To programatically specify the window to be captured,
use self.filename = window_id
, where window_id is
the id displayed by xwininfo(1).
true
, suppress the beeps that signal the
start and finish of the capture process. The bell rings once
to signal the start of the capture and twice to signal the
finish.true
, include the window frame.true
, obtain image
by descending window hierarchy.true
, specifies that the GetImage request used to obtain the image
should be done on the root window, rather than directly on
the specified window. In this way, you can obtain pieces of
other windows that overlap the specified window, and more
importantly, you can capture menus or other popups that are
independent windows but appear over the specified
window.true
, include the border in the
image.A new image.
img = Magick::Image.capture { self.filename = "root" }
Image.constitute(width, height, map, pixels) -> anImage
Creates an image from an array of pixels. This method is the
reverse of dispatch
.
Integers
or all Floats
. If the
elements are Integers
, the Integers
must be in the range [0..MaxRGB]. If the elements are
Floats
, they must be in the range [0..1].An image constructed from the pixel data.
ConstituteImage
Image.from_blob(aString) [ { optional arguments } ] -> anArray
Creates an array of images from a BLOB, that is, a Binary Large OBject. In RMagick, a BLOB is a string.
A blob can be a string containing an image file such as a JPEG or GIF. The string can contain a multi-image file such as an animated GIF or a Photoshop image with multiple layers. A blob can also be one of the strings produced by to_blob. Control the format of the created image(s) by setting additional Image::Info attributes in the optional block argument.
An array of one or more images constructed from the BLOB.
See to_blob
.
BlobToImage
Image.new(columns, rows [, fill]) [ { optional arguments } ] -> anImage
Fill
objectA new image.
img = Magick::Image.new(256, 64) { self.background_color = 'red' }
AllocateImage
Image.ping(filename) [ { optional arguments } ] ->
anArray
Image.ping(file) [ {
optional arguments } ] -> anArray
Creates one or more images from the image file, omitting the
pixel data. Only the attributes are stored in the images. This
method is faster than read
and
uses less memory.
An image file name or open file object. You can specify other arguments by setting Image::Info attributes in the optional block.
An array containing 0 or more images.
cheetah = Magick::Image.ping("Cheetah.jpg") » [Cheetah.jpg JPEG 1024x768 DirectClass 8-bit 101684b] p cheetah[0].rows » 768 p cheetah[0].columns » 1024
PingImage
Image.read(filename) [ { optional arguments } ] ->
anArray
Image.read(file) [ {
optional arguments } ] -> anArray
Creates one or more images from the image file.
An image file name or open file object. You can specify other arguments by setting Image::Info attributes in the optional block.
An array containing 0 or more Image objects. If the file is a multi-image file such as an animated GIF or a Photoshop PSD file with multiple layers, the array contains an Image object for each image or layer in the file.
animated = Magick::Image.read("animated.gif") » [animated.gif GIF 127x120+0+0 PseudoClass 256c 8-bit 54395b animated.gif[1] GIF 127x120+0+0 PseudoClass 256c 8-bit 54395b, animated.gif[2] GIF 127x120+0+0 PseudoClass 256c 8-bit 54395b]
ReadImage
Image.read_inline(content) [ { optional arguments } ] -> anArray
Converts a Base64-encoded image or multi-image sequence to an array of Image objects.
A Base64-encoded string. Generally no optional arguments are required. If the image format cannot be deduced from the image data, you can use the format attribute. If you want to extract a subset of an image sequence, you can use the scene and number_scenes attributes.
An array containing 0 or more Image objects. If the content is a multi-image sequence such as an animated GIF or a Photoshop PSD file with multiple layers, the array contains an Image object for each image or layer in the file.
content = "R0lGODlhnAEuAferAAAAAAcIBggJBgw..." img = Magick::Image.read_inline(content)
image[key] -> aString
Returns the value of the image property identified by
key. An image may have any number of
properties. Each property is identified by a string (or symbol)
key. The property value is a string. ×Magick predefines
some properties, including Label
,
Comment
, Signature
, and in some cases
EXIF
.
String
or a
Symbol
.
The value of the property.
mom['Label'] = 'My Mother'
GetImageAttribute
×Magick calls properties "attributes." I use the word
"properties" to reduce the confusion with image object
attributes such as rows
and
columns
.
image[key] = aString -> image
Sets the value of an image property. An image may have any number of properties.
self
SetImageAttribute
image <=> anOtherImage -> -1, 0, 1
Compares two images and returns -1, 0, or 1 if image is less than, equal to, or greater than
anOtherImage as determined by
comparing the signatures of the images. If one of the arguments
is not an image, this method raises a TypeError exception (in
Ruby 1.6) or returns nil
(in Ruby 1.8)
In addition to <=>, Image
mixes in the
Comparable
module, which defines the <, <=,
== >=, >, and between?
methods.
The difference
method compares images (for
equality only) but also returns information about the amount
two images differ, which may be more useful.
The value of image.signature
<=>
anOtherImage.signature
.
signature, difference, compare_channel
SignatureImage
image.adaptive_blur(radius=0.0, sigma=1.0) -> anImage
Adaptively blurs the image by bluring more intensely near image edges and less intensely far from edges. The adaptive_blur method blurs the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and adaptive_blur selects a suitable radius for you.
A new image
AdaptiveBlurImage (available in ImageMagick 6.2.8)
image.adaptive_blur(radius=0.0, sigma=1.0 [,channel...]) -> anImage
The same as adaptive_blur
except only the
specified channels are blurred.
adaptive_blur
method, above.A new image
AdaptiveBlurImageChannel (available in ImageMagick 6.2.8)
image.adaptive_resize(new_width, new_height)
-> anImage
image.adaptive_resize(scale_factor) -> anImage
Resizes the image with data dependent triangulation.
You can specify the new size in two ways. Either specify the new width and height explicitly, or specify a scale factor, a number that represents the percentage change.
Use the change_geometry method to compute new dimensions for an image with constraints such as "maintain the current proportions."
A new image
AdaptiveResizeImage (available in ImageMagick 6.2.9)
image.adaptive_sharpen(radius=0.0, sigma=1.0) -> anImage
Adaptively sharpens the image by sharpening more intensely near image edges and less intensely far from edges. The adaptive_sharpen method sharpens the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and adaptive_sharpen selects a suitable radius for you.
A new image
AdaptiveSharpenImage (available in ImageMagick 6.2.7)
image.adaptive_sharpen(radius=0.0, sigma=1.0 [,channel...]) -> anImage
The same as adaptive_sharpen
except only the
specified channels are sharpened.
adaptive_sharpen
method, above.A new image
AdaptiveSharpenImageChannel (available in ImageMagick 6.2.7)
image.adaptive_threshold(width=3, height=3, offset=0) -> anImage
Selects an individual threshold for each pixel based on the range of intensity values in its local neighborhood. This allows for thresholding of an image whose global intensity histogram doesn't contain distinctive peaks.
A new image
bilevel_channel, random_threshold_channel, threshold
AdaptiveThresholdImage
image.add_noise(noise_type) -> anImage
Adds random noise to the image. The amount of time
add_noise
requires depends on the NoiseType
argument.
A NoiseType value.
A new image
AddNoiseImage
image.add_profile(filename) -> self
Adds an ICC (a.k.a. ICM), IPTC, or generic profile. If the file contains more than one profile all the profiles are added.
The filename of a file containing the profile.
self
img.add_profile('my_cmyk.icm')
The iptc_profile and color_profile attributes provide very similar functionality, except that these attributes accept the profile data in the form of a string. The profile! method can also be used to add a profile. The type of profile must be specified and the profile data must be in the form of a string. Also see delete_profile and each_profile.
ProfileImage
image.add_noise_channel(noise_type [,channel...]) -> anImage
Adds random noise to the specified channel or channels in the image.
add_noise
method, above.A new image
AddNoiseImageChannel (available in ImageMagick 6.2.5)
image.affine_transform(anAffineMatrix) -> anImage
Transforms the image as specified by the affine matrix.
See Coordinate system transformations in the Scalable Vector Graphics (SVG) 1.0 Specification for more information about transformation matrices.
An AffineMatrix
object.
A new image
The affine matrix in this example skews the receiver by π/6 radians along both axes.
AffineTransformImage
image.annotate(draw, width, height, x, y, text) [ { additional parameters } ] -> image
This is the same method as the annotate
method
in the Draw class, except that the first argument is a Draw
object. Refer to the documentation for Draw#annotate for more information.
Some users feel like annotate
is better placed in
Image than in Draw. Okay, here it is!
self
image.auto_orient -> anImage
Rotates or flips the image based on the image's EXIF
orientation tag. Note that only some models of modern digital
cameras can tag an image with the orientation. If the image
does not have an orientation tag, or the image is already
properly oriented, then auto_orient
returns an
exact copy of the image.
A new image
FlipImage, FlopImage, RotateImage, TransposeImage (available in ImageMagick 6.2.8), TransverseImage (available in ImageMagick 6.2.8)
image.auto_orient! -> self
Rotates or flips the image based on the image's EXIF
orientation tag. Note that only some models of modern digital
cameras can tag an image with the orientation. If the image
does not have an orientation tag, or the image is already
properly oriented, then auto_orient!
returns
nil
.
self. or nil
if the image is already properly
oriented
image.bilevel_channel(threshold [,channel...]) = aNewImage
Changes the value of individual pixels based on the intensity of each pixel channel. The result is a high-contrast image.
MaxRGB
.A new image
bilevel_channel(2*MaxRGB/3, RedChannel)
adaptive_threshold, random_threshold_channel
BilevelImageChannel
image.black_threshold(red_channel [, green_channel [, blue_channel [, opacity_channel]]]) -> anImage
Forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.
Each channel argument is a number between 0 and MaxRGB. All arguments except the first may be omitted. If the green_channel or blue_channel argument is omitted, the default value is the red_channel value. If the opacity_channel argument is omitted, the default value is OpaqueOpacity.
A new image
white_threshold, bilevel_channel
BlackThresholdImage
image.blend(overlay, src_percentage,
dst_percentage, x_offset=0, y_offset=0)
-> anImage
image.blend(overlay, src_percentage,
dst_percentage, gravity, x_offset=0,
y_offset=0) -> anImage
Adds the overlay image to the target image according to src_percent and dst_percent.
This method corresponds to the -blend option of
×Magick's composite
command.
The blend
method can be called with or without
a gravity argument. The gravity, x_offset, and
y_offset arguments are described in
the documentation for watermark.
See "Blend Two Images Together" in Anthony Thyssen's Examples of ImageMagick Usage.
A new image
image.blur_channel(radius=0.0, sigma=1.0[, channel...]]) -> anImage
Blurs the specified channel. We
convolve the image with a Gaussian operator of the given radius
and standard deviation (sigma) . The blur_channel
method differs from gaussian_blur_channel
in that it uses a separable kernel which is faster but
mathematically equivalent to the non-separable
kernel.
For reasonable results, the radius should be larger than sigma. Use a radius of 0 and
blur_channel
selects a suitable radius for
you.
A new image
blur_image, gaussian_blur_channel, radial_blur
BlurImageChannel (available in ImageMagick 6.0.1)
image.blur_image(radius=0.0, sigma=1.0) -> anImage
Blurs the image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma).
For reasonable results, the radius should be larger than sigma. Use a radius of 0
and blur_image
selects a suitable radius for you.
A new image.
gaussian_blur, motion_blur, virtual_pixel_method
BlurImage
image.border(width, height, color) -> anImage
Add a border around the image.
A new image
BorderImage
image.border!(width, height, color) -> self
image.change_geometry(aString) {|cols,rows,image| block} -> ??? (see Returns)
image.change_geometry(aGeometry) {|cols,rows,image| block} -> ??? (see Returns)
The change_geometry
method supports resizing a
method by specifying constraints. For example, you can specify
that the image should be resized such that the aspect ratio
should be retained but the resulting image should be no larger
than 640 pixels wide and 480 pixels tall.
The argument may be either a geometry string or a Geometry object.
Change_geometry
yields to the block, passing new
width and height values based on the argument with respect to
self
. The return value is the return value of the
block.
Geometry
object
The value returned by the block
mona = Magick::Image.read('MonaLisa.jpg').first mona.change_geometry!('320x240') { |cols, rows, img| img.resize!(cols, rows) }
ParseSizeString
change_geometry!
is an alias for
change_geometry
.
image.changed? ->
true
or false
true
if any pixel has
been altered since the image was constituted.
IsTaintImage
image.channel(aChannelType) -> anImage
Extracts a channel from the image. A channel is a particular color component of each pixel in the [image].
A ChannelType value.
An image in which the RGB values of all the pixels have been set to a gray corresponding to the specified channel value. For example, given a pixel in the original image with the value R=255, G=128, B=0 and the RedChannel argument, the equivalent pixel in the result image will have the value R=255, G=255, and B=255. For the BlueChannel argument, the pixel would have the value R=0, G=0, B=0.
The channel image preserves the tone of the selected RGB component.
ChannelImage
image.channel_depth([channel...]) -> aNumeric
Returns the maximum depth for the specified channel or channels.
The maximum depth
GetImageChannelDepth
image.channel_extrema([channel...]) -> [aNumeric, aNumeric]
Returns the minimum and maximum intensity values for the specified channel or channels.
AllChannels
value is not
supported.An array. The first element in the array is the minimum value. The second element is the maximum value.
GraphicsMagick users see statistics
GetImageChannelExtrema (available in ImageMagick), GetImageStatistics (available in GraphicsMagick 1.1)
image.channel_mean([channel...]) -> [aNumeric, aNumeric]
Returns the mean and standard deviation values for the specified channel or channels.
AllChannels
value is not
supported.An array. The first element in the array is the mean value. The second element is the standard deviation.
GraphicsMagick users see statistics
GetImageChannelMean (available in ImageMagick), GetImageStatistics (available in GraphicsMagick 1.1)
image.charcoal(radius=0.0, sigma=1.0) -> anImage
Adds a "charcoal" effect to the image. You can alter the intensity of the effect by changing the radius and sigma arguments.
A new image
CharcoalImage
image.chop(x, y, width, height) -> anImage
Removes the specified rectangle and collapses the rest of the image to fill the removed portion.
A new image
The chop rectangle is highlighted in the "before" image. The result may seem counter-intuitive!
ChopImage
image.clone -> anImage
Same as dup except the frozen state of the original is propogated to the new copy.
A new image
image.color_fill_to_border(x, y, fill_color) -> anImage
Changes any pixel that is a neighbor of the target pixel and is not the border color to the fill color.
A new image
In this example, the aquamarine fill starts at the center of
the circle and fills to the black border. All non-black pixels
are replaced by the fill color. Contrast the result of
color_fill_to_border
with that of
color_floodfill
example, below.
ColorFloodfillImage
image.color_floodfill(x, y, fill_color) -> anImage
Changes any pixel that is the same color and is a neighbor of the target pixel to the fill color.
A new image
In this example, the aquamarine fill starts at the center of
the circle and replaces all neighboring white pixels. Contrast
the result of color_floodfill
with that of
color_fill_to_border
, above.
ColorFloodfillImage
image.color_histogram() -> aHash
Computes the number of times each unique color appears in the image.
A hash. Each key in the hash is a Pixel representing a color that appears
in the image. The value associated with the key is the number
of times that color appears in the image. Caution: if
the image contains many colors the hash will be very large. You
may want to use the quantize
method to reduce the number of colors before using
color_histogram
.
This histogram was produced by sorting the hash returned by
color_histogram
by increasing frequency.
image.colorize(red_pct, green_pct, blue_pct, [matte_pct, ] fill) -> anImage
Blend the fill color with the image pixels. The red_pct, green_pct, blue_pct and matte_pct arguments are the percentage to blend with the red, green, blue and matte channels.
.25
is 25%. The matte_pct argument
is optional.A new image
This example converts a color image to sepia-tone using the
quantize and
colorize
methods.
ColorizeImage
image.colormap(index[, new_color]) -> aString
Returns the color in the color map at the specified index. If the new_color argument is specified, replaces the color at that index with the new color.
Raises IndexError if the image does not contain a color map. Only PseudoClass images have a color map.
colormap
raises an IndexError. You can get the number of colors in the
color map from the colors attribute.The name of the color at the specified location in the color map
image.color_point(x, y, fill) -> anImage
A new image
f.color_point(50,50, 'red')
GetImagePixels, SyncImagePixels
image.color_reset!(fill) -> image
Sets all the pixels in the image to the specified fill color.
f.color_reset!(red)
image.compare_channel(img, metric [, channel...]) -> [anImage, aFloat]
Compares img with the receiver.
An array. The first element is a difference image, the
second is a the value of the computed distortion represented as
a Float
.
difference, <=>, distortion_channel
ImageCompareChannels
This method was named channel_compare
in
earlier releases of RMagick. That name remains an alias for
compare_channel
.
image.composite(img, x, y, composite_op) ->
anImage
image.composite(img, gravity,
composite_op) ->
anImage
image.composite(img, gravity,
x, y,
composite_op) ->
anImage
The composite method can be called three different ways:
A new image
This example shows the effect of some of the composite operators.
composite!, dissolve, watermark
CompositeImage
image.composite!(img, x, y, composite_op) ->
self
image.composite!(img, gravity,
composite_op) ->
self
image.composite!(img, gravity,
x, y,
composite_op) -> self
image.composite_affine(img, affine) -> anImage
AffineMatrix
A new image
DrawAffineImage
image.compress_colormap! -> image
Removes duplicate or unused entries in the colormap. Only
PseudoClass images have
a colormap. If the image is DirectClass
then
compress_colormap!
converts it to
PseudoClass
.
f = Magick::Image.read('cbezier1.gif').first » cbezier1.gif GIF 500x350+0+0 PseudoClass 128c 8-bit 177503b f.colors » 128 f.compress_colormap! » cbezier1.gif GIF 500x350+0+0 PseudoClass 108c 8-bit 177503b f.colors » 108
CompressColormap
image.contrast(sharpen=false
) ->
anImage
Enhances or reduces the intensity differences between the lighter and darker elements of the image.
true
, the contrast is increased, otherwise it is
reduced.
A new image
In this example the contrast is reduced in each successive image.
contrast_stretch_channel, sigmoidal_contrast_channel
ContrastImage
image.contrast_stretch_channel(black_point [, white_point] [, channel...]) -> anImage
This method is a simple image enhancement technique that attempts to improve the contrast in an image by `stretching' the range of intensity values it contains to span a desired range of values. It differs from the more sophisticated histogram equalization in that it can only apply a linear scaling function to the image pixel values. As a result the `enhancement' is less harsh.
all pixels - black_point
pixels
.A new image
ContrastStretchImage (available in ImageMagick 6.2.6)
image.convolve(order, kernel) -> anImage
Applies a custom convolution kernel to the image.
Float
values.A new image
convolve_channel. The edge, emboss, gaussian_blur, motion_blur and sharpen methods use convolution to do their work.
ConvolveImage
See Convolution in the Hypermedia Image Processing Reference
image.convolve_channel(order, kernel [, channel...]) -> anImage
Applies a custom convolution kernel to the specified channel or channels in the image.
Float
values.A new image
ConvolveImageChannel
image.copy -> anImage
f2 = f.copy
CloneImage
image.crop(x, y, width, height) ->
anImage
image.crop(gravity, x, y, width, height) -> anImage
image.crop(gravity, width,
height) -> anImage
Extracts the specified rectangle from the image.
The crop method can be called three different ways:
crop
method retains the offset
information in the cropped image. This may cause the image to
appear to be surrounded by blank or black space when viewed
with an external viewer. This only occurs when the image is
saved in a format (such as GIF) that saves offset information.
To reset the offset data, add true
as the last
argument to crop
. For example,
cropped = img.crop(x, y, width, height, true)
You can add true
as the last argument with any
of the three argument list formats described above.
A new image
The crop rectangle is highlighted in the "before" image.
CropImage
image.crop!(x, y, width, height) ->
image
image.crop!(gravity, x, y, width, height) -> image
image.crop!(gravity, width,
height) -> image
image.crop_resized(width, height,
gravity=Magick::CenterGravity
) ->
anImage
Creates an image with the size specified by width and height having
the same aspect ratio as the target image. Use
crop_resized
to produce a thumbnail image with an
exact size.
If necessary, crop_resized
resizes the image
such that its smaller dimension exactly fits the rectangle
specified by width and height. If the resulting image exceeds the
rectangle's size in the image's larger dimension,
crop_resized
crops the image to fit the rectangle
exactly. Use gravity to specify which
portion of the image to crop.
crop
method.
The default is CenterGravity
.A new image
In this example, some rows have been cropped from the top and bottom to produce a square thumbnail from a rectangular image without distorting the image.
image.crop_resized!(width, height,
gravity=Magick::CenterGravity
) ->
image
image.cycle_colormap(amount) -> anImage
Displaces the colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.
The returned image is always a PseudoClass
image, regardless of the type of the original image.
The number of positions to cycle.
A new image
Mouse over the image to see an animation made by cycling the colormap between each copy.
CycleColormapImage
image.delete_profile(profile_name) -> self
Deletes the specified profile. This method is effectively
the same as passing a nil
2nd argument to profile!.
The profile name, "IPTC" or "ICC" for example. Specify "*" to delete all the profiles in the image.
Setting the iptc_profile attribute or color_profile attribute to nil causes the profile to be deleted. Also see strip! and add_profile.
ProfileImage
image.despeckle -> anImage
Reduces the speckle noise while preserving the edges.
A new image
DespeckleImage
image.difference(other) -> anArray
Compares two images and computes statistics about their difference.
A small normalized mean square error...suggests the images are very similiar in spatial layout and color.
An array of three Float
values:
After difference
returns, these values are also
available from the mean_error_per_pixel,
normalized_mean_error,
and normalized_maximum_error
attributes.
image.dispatch(x, y, columns, rows,
map, float=false
) ->
anArray
Extracts the pixel data from the specified rectangle and
returns it as an array of either Integer
or
Float
values.
The array returned by dispatch
is suitable for
use as an argument to constitute
.
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).true
, the returned array elements will be
Float
values in the range 0..1. If
false
, the returned array elements will be
Integer
values in the range 0..MaxRGB.#! /usr/local/bin/ruby -w require 'RMagick' f = Magick::Image.read("images/Flower_Hat.jpg").first pixels = f.dispatch(0,0,f.columns,f.rows,"RGB") # Write the pixels to a file, to be included # in the constitute.rb example. File.open('pixels-array', 'w') { |txt| txt.puts("Width = #{f.columns}") txt.puts("Height = #{f.rows}") txt.print('Pixels = [') pixels = pixels.join(',') pixels.gsub!(/(\d+,){1,25}/) { "#{$&}\n" } txt.print(pixels) txt.puts(']') } exit
constitute, export_pixels, get_pixels
DispatchImage (GraphicsMagick), or ExportImagePixels (ImageMagick)
This method is deprecated in ImageMagick. Use the
export_pixels
method instead.
image.displace(displacement_map, x_amplitude, y_amplitude,
x_offset=0, y_offset=0) -> anImage
image.displace(displacement_map, x_amplitude, y_amplitude,
gravity, x_offset=0, y_offset=0)
-> anImage
Uses displacement_map to move color from image to the output image.
This method corresponds to the -displace option of
×Magick's composite
command.
The displace
method can be called with or
without a gravity argument. The
gravity, x_offset, and y_offset
arguments are described in the documentation for watermark.
See "Composite Displacement Maps" in Anthony Thyssen's Examples of ImageMagick Usage.
A new image
image.display [ { optional arguments } ] -> image
Display the image on an X Window screen. By default, the screen is the local monitor. Right-click the window to display a context menu.
You can specify additional arguments by setting Info
attributes in a block associated with the method call.
Specifically, you can set the name of a non-default X Window
screen with the server_name
attribute.
self
The display method is not supported on native MS Windows.
DisplayImages
image.dissolve(overlay, src_percentage,
dst_percentage, x_offset=0, y_offset=0)
-> anImage
image.dissolve(overlay, src_percentage,
dst_percentage, gravity, x_offset=0,
y_offset=0) -> anImage
Composites the overlay image into the target image. The opacity of image is multiplied by dst_percentage and opacity of overlay is multiplied by src_percentage.
This method corresponds to the -dissolve option of
×Magick's composite
command.
dissolve
ignores the
value and uses 1.0-src_percentage
instead.The dissolve
method can be called with or
without a gravity argument. The
gravity, x_offset, and y_offset
arguments are described in the documentation for watermark.
See " Dissolve One Image Over Another" in Anthony Thyssen's Examples of ImageMagick Usage.
bgnd.dissolve(overlay, 0.50, 1.0)
A new image
image.distortion_channel(reconstructed_image, metric[, channel...]) -> aFloat
(C)ompares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.
The distortion metric, represented as a floating-point number.
GetImageChannelDistortion (available in ImageMagick 6.2.0)
image.dup -> anImage
image.each_iptc_dataset { |dataset,
data_field| block} -> nil
Iterates over the IPTC DataSet constants in Magick::IPTC. If the image's IPTC profile has the DataSet and the data field has non-0 length, yields to the block. The IPTC DataSet constants are listed here.
The block arguments are:
image.each_profile {|name, value| block} -> ??? (see Returns)
the last value returned by the block
The color_profile and iptc_profile attributes return the ICC and IPTC profiles, respectively.
GetNextImageProfile
image.edge(radius=0.0) -> anImage
edge
selects a suitable default.
A new image
EdgeImage
image.emboss(radius=0.0, sigma=1.0) -> anImage
A new image
EmbossImage