Dynamic Media Delivery OpenAPI (2024.11-experimental)

Download OpenAPI specification:Download

Assets

APIs for working with asset binaries

Returns web-optimized binary representation of the asset in the requested output format

The seo-name doesn't have a functional impact on the image, but is provided to allow for adding SEO value to asset URLs. The assetId is an opaque string defined by the content repository that can be used to target the asset resource.

In the URL construction, an SEO name and an output image format must be provided.

To make composite images the following modifiers are necessary:

  • layers: specify the pipe(|) separated names and order of the constituent layers in the image.
    Eg: layers=mid|top
    layer names can have any alphanumeric characters (a-z, A-Z, 0-9). base is reserved for the base layer. The base layer will always be the lower most layer (even if specified in the layers parameter at any other position) and will always be included (even if omitted from the layers parameters).
    i.e., layers=base|mid|top, layers=mid|top and layers=mid|base|top are all equivalent, and the recommendation is to follow either the first or the second pattern.
  • source: specify the asset ids to be used in each layer.
    Eg: source[mid]={mid_assetId}
To apply a tranformation to a specific layer supply the layer name along with the transformation parameter. Transformations without any layer name will be applied to the entire image.
Eg blur[top]=5 will apply a blur to just the top layer, while blur=5 will blur the entire image.

The API is invariant to the order of the transformations in the URL, and transformations for any layer can be specified anywhere in the URL, as long as the layer name is provided.

The asset id mentioned in the query path will always be treated as the base image layer. All compositions will have atleast one layer: the base. To apply transformations to the base layer, use the layer name base in the transformation parameters. A sample request URL for a composite image with three layers would look like:

  /assets/{base_assetId}/as/{seo-name}.{format}?layers=mid|top&source[mid]={mid_assetId}&pos[mid]=150,0&wid[mid]=500&source[top]={top_assetId}&pos[top]=300,0&wid[top]=200&&wid=800

Descriptions of the the transformations that can be supplied as query parameters are listed below.

SecurityNone or Bearer
Request
path Parameters
assetId
required
string (AssetId) non-empty

ID of the asset

Example: urn:aaid:aem:1a034bee-ebda-4787-bad3-f924d0772b75
seoName
required
string([%.\w-]+)

any url-encoded or alphanumeric, non-whitespace set of characters. may contain hyphens and dots

Examples:
banner
format
required
string

output format

Enum: "gif" "png" "png8" "jpg" "pjpg" "bjpg" "webp" "webpll" "webply"
Example: jpg
query Parameters
object or Array of integers

Aligns the composite image (possibly after scaling, if scale= is specified as well) within the view rectangle defined by width= and height=.
Specify align=-1,-1 to align the top-left of the composite image with the top-left of the view, specify align=1,1 to align the bottom, right of the image with the bottom right of the view. Any area of the view which is not covered by composite image data is filled with bgcolor=.
Ignored if only one of width= and height= is specified and when fit=constrain or fit=stretch.

Examples:
Align the center of the image with the center of the view rectangle.
align[layerName]=0,0
object or Array of TwoTuple (integers) or Array of TwoTupleRelative (strings)

Defines the anchor point of the image, solid color, or text bounding box rectangle, before applying transforms (crop=, scale=, rotate=, flip=). Also serves as the center-of-rotation for rotate=.
The anchor point is transformed with the image and becomes the layer origin point (unless origin= is specified as well, in which case anchor= is used only as the center-of-rotation for rotate=). Default value: the center of the image rectangle.
Can be one of :

  • two comma separated values specifying the absolute anchor point (x, y) When absolute values are specified, they are interpreted in source coordinates. Additionally, the values MUST result in a valid crop region, else the operation will be ignored
  • two comma separated values, followed by p: similar to above, but specify a relative (percent) dimension

Use with layerName to apply the transform on a specific layer within the composite image. Not specifying layerName (eg anchor=0,0) will apply the transform on the entire composite image.
Examples:
Anchor the image at the center of the image rectangle.
anchor[layerName]=50p,50p
Anchor the image at the top-left corner of the image rectangle.
anchor[layerName]=-50p,-50p
Anchor the image at the center of the image rectangle.
anchor[layerName]=100,100
object or Array of GrayAColor (integers) or GrayAHexColor (string) or Array of RGBAColor (integers) or RGBAHexColor (string) or Array of CMYKAColor (integers) or CMYKAHexColor (string)

Specifies the background color for the composite image or the layer. Gray, RGB or CMYK color value.
Specifies an opaque fill color to be used for the view background. Visible only if either the composite image has transparent areas, or if the composite image has a different aspect ratio than the view rectangle. Ignored if format=tif-alpha or format=png-alpha.
Any alpha value specified with color is ignored.

Examples:
Gray color
bgcolor[layerName]=128
RGB color
bgcolor[layerName]=128,128,128
RGB color with alpha (alpha will be ignored)
bgcolor[layerName]=50,128,128,128
string or object

Specifies the type of blending used when the layer is composited. Simulates commonly used blend modes available in Photoshop. Refer to Photoshop documentation for details.
can be one of 'norm', 'dissolve', 'lighten', 'darken', 'mult', 'screen'. Default value is 'norm'

Examples:
Blend the layer using the 'norm' blend mode.
blendmode[layerName]=norm
object or integer

Applies a blur filter to the image data. radius is in pixels relative to the composite image. Also used to feather layer effects.

Examples:
Apply a blur filter to the layer named "Layer 1" with a radius of 5 pixels.
blur[layerName]=5
object or integer

Decreases or increases the image brightness.
Ignored by effect layers. CMYK images or layers are converted to RGB before the operation is applied.

Examples:
Increase the brightness of the image by 10%.
brightness[layerName]=10
object or string

Specifies a clip path for the current layer or the composite image.
Any parts of the layer that falls outside the area defined by clipPath= are rendered transparent.
pathDefinition allows specifying explicit path data in layer pixel coordinates.
If size= is specified and not 0,0, the layer is presized. In this case, path coordinates are relative to the upper-left corner of the layer rectangle and the layer is positioned based on origin= or its default. Any regions of the path outside the layer rectangle remain transparent.
If size= is not specified for a solid color or text layer, the layer is considered self-sizing with the extent of the path determining its size. If origin= is not specified, it defaults to (0,0) of the path coordinate space. This workflow process effectively allows path coordinates to be specified relative to the origin of layer 0.
The following path commands are supported in pathDefinition :

  • M x,y - move to absolute - Start a new subpath at absolute location x,y.
  • m x,y - move to relative - Start a new subpath at a location relative to the current point.
  • L x,y - line to absolute - Draw a straight line to absolute location x,y.
  • l x,y - line to relative - Draw a straight line to a location relative to the current point.
  • C x1,y1 x2,y2 x,y - curve to absolute - Draw a cubic Bezier curve to absolute location x,y with control points x1,y1 and x2,y2.
  • c x1,y1 x2,y2 x,y - curve to relative - Draw a cubic Bezier curve to a location relative to the current point with control points relative to the current point.
  • Z|z - close path - Close the current subpath by drawing a straight line to the start of the subpath.

Uppercase commands indicate that the coordinate values are in absolute pixel positions (relative to the upper-left of the layer rectangle). Pixel offsets follow lowercase commands relative to the current position.
'm' or 'M' always starts a new subpath. Subpaths are closed automatically (with a straight line) if 'Z' or 'z' is not specified at the end.
If a subpath begins with a relative moveto ('m'), it is relative to one of the following:
  • The starting point of the previous subpath, if it was closed with 'z' or 'Z'.
  • The end point of the previous subpath, if it was not closed explicitly.
  • 0,0, if it is the first subpath.
Examples:
A clip path that defines a rectangle with curved corners.
clippath[layerName]=M,50,0,L,950,0,C,975,0,1000,25,1000,50,L,1000,580,C,1000,605,975,630,950,630,L,50,630,C,25,630,0,605,0,580,L,0,50,C,0,25,25,0,50,0,Z
A clip path that defines an upside down triangle with a height of 900 pixels and a base of 1600 pixels on a 1600x900 image. Specify <code>size=1600,900</code> to ensure the clippath works with the correct image size.
clippath[layerName]=M,0,0,L,1600,0,L,800,900,Z
object or string

Specifies an exclusion clip path for the current layer. Any parts of the layer that are within the area defined by clippath-invert= are rendered transparent.
See clippath= for more information on clip paths.

Examples:
A clip path that defines an upside down triangle with a height of 900 pixels and a base of 1600 pixels on a 1600x900 image. <br> Specify <code>size=1600,900</code> to ensure the clippath works with the correct image size.
clippath-invert[layerName]=M,0,0,L,1600,0,L,800,900,Z
object

Specifies a clip path for the current layer.
Any parts of the layer that falls outside the area defined by clipPath= are rendered transparent.
pathName is the name of a path embedded in the layer source image. The path is automatically transformed to maintain relative alignment with the image contents. If more than one pathName is specified, the server clips the image to the intersection of these paths. Any pathName not found in the source image is ignored.
Only ASCII strings are supported for pathName.
The modifier is ignored if no path with the specified name is found in the layer source image, or if the layer source is not an image.
Can only be used with a layer, not the composite image.

Examples:
The source image already contains a clip path with the name "border-with-curved-corners".
clippathname[layerName]=border-with-curved-corners
object

Specifies an exclusion clip path for the current layer. Any parts of the layer that are within the area defined by clipXPath= are rendered transparent.
see clippathname= for more information on named clip paths.
Can only be used with a layer, not the composite image.

Examples:
A clip path with the name "border-with-curved-corners" embedded in the source image.
clippathname-invert[layerName]=border-with-curved-corners
object or Array of integers

Adjusts the value of each RGB color component separately as colorbalance=rAdj,gAdj,bAdj where rAdj, gAdj, bAdj are integers between -100 and 100.
Gray and CMYK input image data is converted to RGB using naive conversion which is not accurate when color management is enabled.

Examples:
Increase the red component of the image by 10%, the green component by 20%, and the blue component by 30%.
colorbalance[layerName]=10,20,30
object or object

Examples:

  • colorize[layerName]=00,00,255,norm,50 - Colorize the image with a blue tint.
Colorizes the image data while preserving shadows and highlights.
The second argument specifies whether the brightness of the source image should be adjusted before colorizing. Specify off to disable the automatic brightness compensation or norm to adjust the brightness automatically so that the median value is at 50% intensity.
Set the contrast value to 0 to preserve the contrast range of the input image, or specify a desired contrast range with a value greater than 0. A value of 100 maximizes the contrast. Typical values might be between 30 and 70.
In addition to the built-in brightness and contrast adjustments, brightness= and contrast= may be used to further fine-tune the colorizing effect.
The colorizing algorithm uses only the luminance information in the image data. This conversion to grayscale is simple and not color-managed. colorize= always outputs RGB data, even if the input is grayscale or CMYK
Properties:
  • Applies to the current layer. Ignored by effect layers.
  • color must be an RGB value; gray or CMYK color values are not supported.
  • The contrast value is ignored if brightness compensation is turned off.
  • color is assumed to exist in the working color space corresponding to the pixel type of color. color is converted accurately if the layer image has a different pixel type at the time of merge.
  • CMYK images are converted to RGB before the operation is applied.

Default value is None, for no colorization. The second and third arguments default to norm,0 for automatic brightness compensation and no contrast change.
object or integer

Adjust contrast. Adjusts the image contrast by increasing the brightness of pixels with more than 50% brightness, and reducing the brightness of pixels with less than 50% brightness.
contrast[layerName]=0 for no change in contrast. CMYK images or layers are converted to RGB before the operation is applied.

Examples:
Apply a contrast adjustment to the layer named "Layer 1" with a contrast of 50%.
contrast[layerName]=50
object or Array of FourTuple (integers) or Array of FourTupleRelative (strings)

Can be one of:

  • four comma-separated integers: first two specify the origin (x, y) and last two specify the size of the cropped region. When absolute values are specified, they are interpreted in source coordinates. Additionally, the values MUST result in a valid crop region, else the operation will be ignored
  • four comma-separated integers, followed by p similar to above, but specify a relative (percent) dimension
Examples:
crop 10 percent from all sides
crop[layerName]=10p,10p,50p,50p
crop 100 pixels from all sides
crop[layerName]=100,100,100,100
object

Crop to the bounding box of an embedded named path. This cropping, in turn, changes the size of the image.
Name of path embedded in layer source image should be in ASCII only.
The path is automatically transformed as needed to maintain relative alignment with the image contents. If more than one pathName is specified, the server crops to the bounding box of each path, one at a time. Any pathName not found in the source image is ignored.
Ignored if no path with the specified name is found in the layer source image, or if the layer source is not an image.
Can only be used with a layer, not the composite image.

Examples:
Crop to the bounding box of the path named "border-with-curved-corners" embedded in the source image.
cropname[layerName]=border-with-curved-corners
Crop to the bounding box of the paths named "border1" and "border2" embedded in the source image.
cropname[layerName]=border1,border2
object

Specifies the image to be used when an image cannot be found.

Examples:
The asset-id of the image to be used when an image cannot be found.
defaultimage[layerName]=urn:aaid:aem:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
object or integer

Dilate/erode image. Applies a morphological dilate (radius > 0) or erode (radius < 0) to the image data.
radius is in pixels relative to the composite image. If the image is color, each component is processed independently.
Primarily used to modify the size of layer effects. Also useful to achieve special effects on solid color layers with masks.

Examples:
erode image
layerName=-50
dilate image
layerName=50
object or integer

Dilate/erode image. Applies a morphological dilate (radius > 0) or erode (radius < 0) to the mask data.
Dilate/erode radius in pixels where radius is assumed to apply to the full resolution mask and therefore is scaled down for downsampled masks
Primarily used to slightly grow or shrink a mask to avoid artifacts around the edge of the mask.

Examples:
erode image
dilate-mask[layerName]=-50
dilate image
dilate-mask[layerName]=50
object or integer

Device Pixel Ratio (DPR)—also known as CSS pixel ratio—is the relation between a device's physical pixels and logical pixels.
Enabling Device Pixel Ratio optimization renders the image at the native resolution of the screen which makes it sharp.

Requested image size dpr value Delivered Image Resolution
816x500 1 816x500
816x500 2 1632x1000
816x500 3 2448x1500
816x500 4 3264x2000
Examples:
makes the image width and height 2 times the original size
dpr[layerName]=2
object or Array of FourTuple (integers) or Array of FourTupleRelative (strings)

Extend layer. Adds margins to a layer or crops the layer rectangle.
Can be one of :

  • Four comma separated values specifying the number of pixels to add to (or remove from, if the value is negative) the left, top, right, and bottom edge of the layer rect (int, int, int, int). When absolute values are specified, they are interpreted in source coordinates.
  • Four comma separated values, followed by p: similar to above, but specify a relative (percent) dimension (real, real, real, real).

extend= is applied to the layer after the image is cropped ( crop=) and all layer transforms, including rotate=, have been applied.
The extended area is filled with bgcolor=, or, if not specified, remains transparent.
Argument values for extendN= are normalized relative to the size of the layer rect after layer transforms, including rotate= have been applied.
Examples:
Extend layer by 10 percent on all four sides.
extend[layerName]=10p,10p,10p,10p
Extend layer by 10 pixels on all four sides
extend[layerName]=10,10,10,10
object or Array of GrayAColor (integers) or GrayAHexColor (string) or Array of RGBAColor (integers) or RGBAHexColor (string) or Array of CMYKAColor (integers) or CMYKAHexColor (string)

Specifies the foreground color and opacity of solid color and effect layers, and the text box fill color for text layers.
Gray, RGB, or CMYK color value, with or without alpha.
If there are image and text layers, fgcolor= fills transparent and semi-opaque areas within the bounding rectangle of the layer with the specified color before rotate= and extend= are applied.
Defaults to 0,0,0,0 (fully transparent).

Examples:
Gray color
fgcolor[layerName]=128
RGB color
fgcolor[layerName]=128,128,128
RGB color with alpha (alpha will be ignored)
fgcolor[layerName]=50,128,128,128
object or object

Examples:

  • fit[layerName]=fit,0 - Colorize the image with a blue tint.
  • fit[layerName]=fit - Colorize the image with a blue tint.

Response Image Fit Mode. Specifies how the scale factor is calculated, which is used to scale the composite image to the response image when the response size is specified with width= and height= and scale= is not present.
Takes 2 values: mode, upscale
mode takes the following values:

Parameter Description
fit Scales the composite image so that it fits into the space allocated with width= and height= , with minimal whitespace and no cropping. The response image has the exact size specified with width= and height= . The smaller of xScale and yScale is applied.
constrain Scales the composite image like fit so that it fits into the space allocated with width= and height= , but the actual response image may be smaller than specified with width= and height= to avoid whitespace. The smaller of xScale and yScale is applied.
crop Scales the composite image so that it fills the entire response image, with minimal cropping and no whitespace. The larger of xScale and yScale is applied.
wrap Scales the composite image like crop so that it covers the entire response image, but the actual response image may be larger than specified with width= and height= to avoid cropping. The larger of xScale and yScale is applied.
stretch Scales the composite image independently in x and y to fill the entire response image, with no cropping and no whitespace. This typically changes the aspect ratio of the image. xScale is used for horizontal scaling and yScale for vertical scaling.
hfit Applies xScale to tightly fit the image horizontally, with likely cropping or whitespace at the top and/or bottom. Useful for special applications.
vfit Applies yScale to tightly fit the image vertically, with likely cropping or whitespace at the left and/or right. Useful for special applications.

Set upscale to '1' to allow upscaling or to '0' to constrain xScale and yScale to be limited to 1:1. If upscaling is disabled, additional whitespace may be present if the composite image is smaller than the response image.
Crop and whitespace are centered by default; their position can be controlled with align=. The color and opacity of the whitespace fill is determined by bgcolor=.
string or object

horizontal or vertical flipping

Examples:
Flip the layer horizontally.
flip[layerName]=h
object or boolean

Specifies whether browser format conversion functionality-converting JPEG or PNG images to smaller browser-specific file should be off for no browser-specific format conversion.
Takes only one value: false. If specified, the server does not convert the image to a smaller browser-specific format. If not specified, the server converts the image to a smaller browser-specific format.

Examples:
Turn off browser format conversion for the layer.
integer or object

'height' (vertical dimension) of the output image.

If 'width' is also specified, then vertical dimension of the output may smaller than requested to preserve original aspect ratio.

Examples:
Resize the layer to 200 pixels in height.
layerName=200
object

hide a specific layer in the image without removing it from the request string.
Can only be used with a layer, not the composite image.

Examples:
Hide the layer named "layerName".
hidelayer[layerName]=true
Unhide the layer named "layerName". this is equivalent to not using the hidelayer transform.
object or integer

Shifts the hue of each visible pixel of the layer or composite image by the specified amount. CMYK images are converted to RGB before the hue shift is applied.

Examples:
Shift the hue of the layer by 90 degrees.
hue[layerName]=90
iccembed
boolean

Specifies whether the working ICC color profile or the profile specified with iccprofile= should be embedded in the reply image. Ignored if the output image format does not support embedding of ICC.
icc profiles for individual layers (if specified) will not be embedded in the final response. the response will only have the icc profile specied for the composite image using iccprofile= (without layerName).

Examples:
Embed the working ICC color profile in the layer.
iccembed=true
object or string

Requests with different id will be treated as new requests even when all the other parameters are same. This can be used to bypass the cache and force the image to be reprocessed and create a new cache entry.

Examples:
Use the current date as id.
id[layerName]=01-01-24
object or boolean

Inverts each color component for a negative image effect.

Examples:
Invert the colors of the layer.
invertcolor[layerName]=true
object or integer

Jpeg Size in KiloBytes. Specifies the maximum size of the JPEG response in kilobytes.
If this is set to a positive value, and if the JPEG response with the specified JPEG quality does not exceed this value, that image is returned as the response. Otherwise, the JPEG quality decreases until it either produces an image which fits in to the specified size or until it determines it cannot fit. In the latter case, the request fails with an error.
A value of 0 means that the response is not constrained by size.
Negative values are not allowed. Ignored if the output image format is not JPEG.

Examples:
Set the maximum size of the JPEG response to 100 KB for the layer named "layerName"
jpegsize[layerName]=100
layers
string

The layers to be included in the response, separated by the | character. The layer name is case-sensitive.
layer names can have any alphanumeric characters (a-z, A-Z, 0-9). base is reserved for the base layer. The base layer will always be the lower most layer (even if specified in the layers parameter at any other position) and will always be included (even if omitted from the layers parameters).
i.e., layers=base|mid|top, layers=mid|top and layers=mid|base|top are all equivalent, and the recommendation is to follow either the first or the second pattern.
Nested layers are not supported, and the layers parameter can not applied to any other layer. Something like layers=top&layers[top]=top1|top2 is invalid.

Examples:
a composite request with two layers
layers=top
a composite request with three layers.
layers=base|mid|top
a composite request with three layers, but the base layer is omitted.
layers=mid|top
object or string

Specifies how the mask or alpha channel of the image is used for operations on the image (for example, colorize=). When specified in an effect layer, it allows applying the effect to the background area of parent layer or to the entire parent layer rectangle.
masktype=norm|invert|off
The following table illustrates the effect of masktype= depending on availability and type of the mask (alpha channel) associated with the layer image.

Value No mask Unassociated alpha (or separate mask image) Associated (pre-multiplied) alpha
off Opaque image rectangle Opaque image rectangle Foreground area of image over rectangle filled with solid black
norm Opaque image rectangle Foreground area of image Foreground area of image or layer
invert Hidden layer Background area of image Background area of image or layer filled with solid black
Examples:
The mask is used to colorize the background area of the parent layer add mask=<maskName>&colorize=<color> along with masktype=invert, where <maskName> defines a mask that defines the foreground of the image.
masktype[layerName]=norm
network
boolean

Specifies whether network bandwidth adjusts the image quality that is served based on actual network bandwidth (on), or network bandwidth optimization is turned off for no image quality adjustment.

Examples:
Adjust the image quality based on actual network bandwidth.
network=true
Turn off network bandwidth optimization.
network=false
object or integer or string or object

Examples:

  • noise[layerName]=10 - Add 10% uniform noise to the image.
  • noise[layerName]=10,gaussian - Add 10% gaussian noise to the image.
  • noise[layerName]=10,uniform,true - Add 10% monochrome uniform noise to the image.
Adds random noise to the foreground image data, or to the foreground of an effect layer. Can take values in the form:

  • val: amount of noise in percent (0-100 int)
  • val,type: amount of noise in percent, followed by type of noise (uniform, gaussian)
  • val,type,monochrome: amount of noise in percent, followed by type of noise, followed by monochromaticity (false for color noise, true for monochrome)
object or Array of integers

Allows decreasing the foreground opacity of an image, text, solid color, or effect layer. takes values in the form:

  • opacity: opacity in percent (0-100 int)
  • opacity,fillOpacity: opacity in percent, followed by fill opacity in percent (0-100 int)
The foreground opacity for an image layer is determined by the layer mask or the alpha channel of the image, or, if neither are present, it is 100%. The foreground opacity of a text layer is 100%, and that of a solid color layer is set by fgcolor=.
opacity= never modifies the opacity of areas filled with fgcolor= or bgcolor=, except the foreground areas of solid color and effect layers (set with fgcolor=).
When specified in an image, text, or solid color layer, opacity applies the entire layer, including all associated effect layers, while fillOpacity applies only to the primary layer contents. When specified in an effect layer, opacity applies to the effect layer, while fillOpacity is ignored.
The effective opacity for the main layer contents is ( opacity * fillOpacity / 100). The effective opacity for effect layers is (main opacity * effect opacity / 100).
Examples:
Set the opacity of image to 50%.
opacity[layerName]=50
Set the opacity of image to 50% and fill opacity to 50%.
opacity[layerName]=50,50
object or Array of TwoTuple (integers) or Array of TwoTupleRelative (strings)

Defines the alignment point of the layer rectangle, which is used to position the layer rectangle relative to layer 0 by way of position=.
layer rectangle includes any modifications by extend=.

Examples:
The top-left corner of the layer rectangle.
origin[layerName]=0,0
The top-left corner of the layer rectangle.
origin[layerName]=-50p,-50p
The center of the layer rectangle.
origin[layerName]=0p,0p
The top-right corner of the layer rectangle.
origin[layerName]=-50p,50p
object or boolean

Specifies whether Photoshop paths from the base layer source image file should be included in the response image.
Ignored if the base image does not contain paths data. The paths data is scaled and rotated like the image data. Only paths from the base layer are processed; paths from other layer images are ignored.
Ignored if the output image format does not support path embedding. Open Photoshop paths (paths which do not form closed loops) are not supported for embedding.

Examples:
Include paths from the base layer source image file in the response image.
pathembed[layerName]=true
object or object

Examples:

  • perspective[layerName]=0,0,500,0,400,400,100,400 - warp to a trapezium
  • perspective[layerName]=0,0,500,0,400,400,100,400,R2 - warp to a trapezium with Bilinear resampling
Apply a perspective transform to the layer source image so it fills the region specified with the quadrilateral. Other areas of the layer remain transparent.
takes values in the form:
  • quad: four pairs of x,y coordinates (all either absolute values or percentages suffixed with p) that define the corners of the quadrilateral in the source image.
  • quad,resOptions:
    • quad as defined above.
    • resOptions lets you select an alternative resampling algorithm. The following values are supported (case-sensitive):
      • R1: Nearest neighbor
      • R2: Bilinear
      • R3: Standard super-sampling (default)
      • R3T n: Super-sampling with adjustable jitter (n is the jitter value, integer between 1 and 200)

While the default implementation produces a reasonable compromise between quality and performance, it may be necessary to increase the resolution of the source image to improve sharpness or to reduce it to reduce aliasing artifacts.
If the source is an image, use scale= to choose a different resolution (relative to the full resolution of the image). If there is a nested request source, the size of the image produced by the nested request can be adjusted to achieve the desired sharpness. For text layers, the resolution of the input image (the rendered text) is adjusted by selecting a larger size= value with increasing the resolution.

pjpeg-scan
string

Progressive JPEG initially displays a low-quality image that becomes clearer with each scan. This parameter sets the number of scans (3, 4, or 5) for the image to fully appear.
pjpeg-scan=auto|3|4|5
The actual speed of each scan depends on the transmission speed of the user's system and the computer that receives and decompresses the data.
Auto uses the scan settings that are computed by the independent JPEG library and depends upon the color model. The values of 3, 4, 5 correspond to the Scan setting found in Adobe Photoshop when you save a JPEG file as a pjpeg (progressive JPEG).
If pjpeg-scan is not set, it defaults to auto. Ignored if format= is not set to pjpeg.
Can only be used with the composite image, not the individual layers.

Enum: "auto" "3" "4" "5"
Example: pjpeg-scan=auto
object or Array of TwoTuple (integers) or Array of TwoTupleRelative (strings)

If there is an image, or solid color layers, position= specifies the position of a layer anchor relative to the base layer's anchor. Can be one of :

  • two comma separated values specifying the absolute position (x, y) relative to the base layer's anchor. When absolute values are specified, they are interpreted in source coordinates.
  • two comma separated values, followed by p: similar to above, but specify a relative (percent) dimension
If there are effect layers, position= shifts the effect layer relative to the parent layer.
Positive values move the layer towards the right/bottom, and negative towards the left/top.
Examples:
Position the layer at the half height and width distance from the base layer's anchor.
layerName=50p,50p
Position the layer at half height and width distance from the base layer's anchor, towards the top left corner.
layerName=-50p,-50p
Position the layer 100 pixels right and 100 pixels down from the base layer's anchor.
layerName=100,100
preferwebp
boolean

Try serving a webp image instead of the format specified in the request path. The served image is not guaranteed to be in the webp format.

Example: preferwebp=true
object or string

Apply image preset on the composite image or the specified layer.

Examples:
apply the preset named "preset-name" to the layer.
preset[layerName]=preset-name
printresolution
integer >= 1

Overrides the print resolution value embedded in the response image.
If there is a layered composite image, the default print resolution embedded in the response file is the print resolution of the layer image with the lowest layer.
Setting the print resolution does not change the pixel size of the reply image.
print resolution for individual layers (if specified) will not be embedded in the final response. the response will only have the print resolution specifieed for the composite image using printresolution= (without layerName).

Example: printresolution=2
object or object

Examples:

  • quality[layerName]=45 - set the quality of a single layer
  • quality=90 - set quality of the entire composite image
%age quality parameter of the output image
takes values between 1 and 100, where 1 is the lowest quality and 100 is the highest quality for that format.
for jpeg images, this parameter can also have the optional chroma flag. set to false(default) to enable chroma subsampling, set to true to disable chroma subsampling.
object or object

Examples:

  • quantize[layerName]=web,off - use the web palette and no dithering
  • quantize[layerName]=adaptive,off,2,000000,ffffff - Make the image bi-tonal. force colors to black and white.
Specifies color-quantization attributes for GIF output conversion.
value can be specified as:
  • type
  • type, dither
  • type, dither, numColors
  • type, dither, numColors, colorList
where these values are:
property description
type One of: {adaptive|web|mac}
Specifies the palette type.
Set to adaptive to calculate an optimal palette for the image.
Set to web or mac to choose a pre-defined palette.
Note: The mac pallet type is only supported for PNG8 formats but not for PNG8-Alpha.
dither One of: {diffuse|off}
Specifies the dithering options.
Set to diffuse for Floyd-Steinberg error diffusion.
Set to off to disable dithering.
numColors Number of output colors (2-256)
Specifies how many colors are included in the adaptive palette.
colorList

A comma-separated list of forced RGB colors in hex6 format.
Lets you specify the colors to include in an adaptive palette. If the number of colors specified is less than numColors, additional colors are calculated based on the image content.

Used only if format=png8, or format=png8-alpha. Ignored otherwise.

The colors specified with colorList must consist of RGB values in hex6 format (without 0x prefix). No other color specifiers are permitted. The modifier numColors must be between 2-256.

rectangle
Array of integers [ 4 .. 5 ] items

Disassemble the final view into several strips or tiles, which can be delivered separately and reassembled by the client seamlessly, with no artifacts along the edges.

  • coord, size:
    • coord is the pixel offset from the top-left corner of the image to the top-left corner of the rectangle (int, int).
    • size is the size of the ROI in pixels (int, int). Specifies the reply image size. The image is filled with bgcolor= in areas not covered by the view image (or left transparent, if format=*-alpha is present in the request).
  • coord, size, scale: coord and size are as above. scale is the third optional parameter. If present, coord is interpreted after the scale is applied.
    • scale is the Scale factor (real). Values smaller than 1.0 reduce the resolution, and values larger than 1.0 increase the resolution.
Can only be used with the composite image, not the individual layers.
Examples:
Disassemble a 2000x2400 image into three strips, the first strip of the image.
rectangle=0,600,2000,600
The second strip of the image.
rectangle=0,1200,2000,600
The third strip of the image.
rectangle=0,1800,2000,600
object or Array of FourTuple (integers)

Specifies a rectangular region-of-interest (ROI) in the composite image, expressed in pixels.
takes the form of four integers: x, y, width, height.
The x and y values are the coordinates of the top-left corner of the region. The width and height values are the dimensions of the region.
region= is applied before final scaling and fitting with scale=, width=, height=, fit=, rectangle=, or align=.

Examples:
A region of 100x100 pixels starting at 0,0
region[layerName]=0,0,100,100
object or string

Chooses the resampling and/or interpolation algorithm to be used for scaling image data. Also applies to resizing of composite images during the view transform.
takes one of the following values:

Value Description
bilin Selects standard bi-linear interpolation. Fastest resampling method; some aliasing artifacts are noticeable.
bicub Selects bi-cubic interpolation. More CPU-intensive than bi-linear interpolation, but yields sharper images with less noticeable aliasing artifacts.
sharp2 Selects a modified Lanczos Window function as an interpolation algorithm. Can produce slightly sharper results than bi-cubic at a higher CPU cost. sharp has been replaced by sharp2 , which has a lesser likelihood of causing aliasing artifacts (Moiré).
bisharp Selects Photoshop default resampler for reducing image size which is called "bicubic sharper" in Adobe Photoshop.
Examples:
Apply a resampling mode of bicub to the layer named "Layer 1".
resampling-mode[layerName]=bicub
object or number

Rotates the image, or solid color layer by the specified angle in degrees (real).
Positive angles rotate clockwise. The layer anchor point (anchor=) serves as the center-of-rotation. The layer rectangle is enlarged and fitted around the rotated data as needed to avoid cropping. Rotation is applied after filling the layer's background area with fgcolor=. The modifier bgcolor= can be used to add background color to the bounding rectangle after rotation.

Examples:
Rotate the layer named "layerName" by 90 degrees.
layerName=90
object or integer

Changes the saturation of each visible pixel of the layer or composite image. Can be integer between -100 and 100.

Examples:
Increase the saturation of the layer by 50%.
saturation[layerName]=50
object or number

Scales a layer source image by factor relative to the full-resolution image (real, greater than 0.0).
default value: 1
Ignored if size= is specified as well for the current layer. Ignored if the layer is not associated with an image or mask.

Examples:
Scale the layer by 1.5.
scale[layerName]=1.5
object or boolean

Applies a basic sharpening filter to the layer or to the final view image, after all scaling.

Examples:
Apply a sharpening filter to the layer.
sharpen[layerName]=true
object or Array of TwoTuple (integers)

comma separated integers specifying width and height of output

Examples:
A size of 100x100 pixels
size[layerName]=100,100
smartcrop
string

Identifier of the 'smartcrop' to be applied while delivering the asset.
Can only be used with a layer, not the composite image.

Example: smartcrop=QHD
object

Examples:

  • source[top]={top_assetId} - set the source for the layer named "top" to the assetId "top_assetId".
The assetId to be used as the source for the layer. The layer name is case-sensitive.
Can only be used with a layer, not the composite image.
object or object

Examples:

  • unsharpmask[layerName]=5 - basic unsharp to the layer
  • unsharpmask=5 - basic unsharp to the composite image
  • unsharpmask[layerName]=5,10,10,true - apply the unsharp filter to the brightness
Unsharp masks the layer or the final view image, after all scaling. The parameters are assumed to apply to the full resolution image and are scaled down when processing a downsampled image.
takes value in the form:
  • amount
  • amount, radius
  • amount, radius, threshold
  • amount, radius, threshold, monochrome
where the parameters are defined as:
  • amount: Filter strength factor (real 0-5).
  • radius: Filter kernel radius in pixels (real 0-250).
  • threshold: Filter threshold level (int 0-255).
  • monochrome: if true, only applies to the image brightness (intensity). If false, applies to all color components separately.
object or integer

'width' (horizontal dimension) of the output image or a layer.

If 'height' is also specified, then horizontal dimension of the output may smaller than requested to preserve original aspect ratio.

Examples:
Resize the layer to 100 pixels wide.
layerName=100
xmpembed
boolean

Specifies whether XMP metadata should be included in the response image.
Ignored if the source image does not contain XMP data. Only XMP data from the source image of base layer are processed. XMP data from other layer images are ignored. Ignored if the output image format does not support XMP embedding.

Example: xmpembed=true
header Parameters
If-None-Match
string

The If-None-Match header field makes the request method conditional on a recipient cache or origin server either not having any current representation of the target resource, when the field value is "*", or having a selected representation with an entity tag that does not match any of those listed in the field value.

For more details, please head over to RFC9110.

Responses
200

Web-optimized version of the asset

400

Bad Request. The Problem Details object will provide more information about the exact cause.

401

Unauthorized

403

Forbidden

404

Not Found

get/{assetId}/as/{seoName}.{format}
Request samples
Response samples
application/problem+json
{}