magick (version 2.4.0)

composite: Image Composite

Description

Similar to the ImageMagick composite utility: compose an image on top of another one using a CompositeOperator.

Usage

image_composite(
  image,
  composite_image,
  operator = "atop",
  offset = "+0+0",
  gravity = "northwest",
  compose_args = ""
)

image_border(image, color = "lightgray", geometry = "10x10", operator = "copy")

image_frame(image, color = "lightgray", geometry = "25x25+6+6")

image_shadow_mask(image, geometry = "50x10+30+30")

image_shadow( image, color = "black", bg = "white", geometry = "50x10+30+30", operator = "atop", offset = "+20+20" )

Arguments

image

magick image object returned by image_read() or image_graph()

composite_image

composition image

operator
offset

string with either a gravity_type or a geometry_point to set position of top image.

gravity

string with gravity value from gravity_types.

compose_args

additional arguments needed for some composite operations

color

a valid color string such as "navyblue" or "#000080". Use "none" for transparency.

geometry

a geometry string to set height and width of the border, e.g. "10x8". In addition image_frame allows for adding shadow by setting an offset e.g. "20x10+7+2".

bg

background color

Details

The image_composite function is vectorized over both image arguments: if the first image has n frames and the second m frames, the output image will contain n * m frames.

The image_border function creates a slightly larger solid color frame and then composes the original frame on top. The image_frame function is similar but has an additional feature to create a shadow effect on the border (which is really ugly).

See Also

Other image: _index_, analysis, animation, attributes(), color, device, edges, editing, effects(), fx, geometry, morphology, ocr, options(), painting, segmentation, transform(), video

Examples

Run this code
# NOT RUN {
# Compose images using one of many operators
imlogo <- image_scale(image_read("logo:"), "x275")
rlogo <- image_read("https://jeroen.github.io/images/Rlogo-old.png")

# Standard is atop
image_composite(imlogo, rlogo)

# Same as 'blend 50' in the command line
image_composite(imlogo, rlogo, operator = "blend", compose_args="50")

# Offset can be geometry or gravity
image_composite(logo, rose, offset = "+100+100")
image_composite(logo, rose, gravity = "East")

# Add a border frame around the image
image_border(imlogo, "red", "10x10")
image_frame(imlogo)
image_shadow(imlogo)
# }

Run the code above in your browser using DataCamp Workspace