@adobe/aio-lib-photoshop-api

Adobe I/O Photoshop Automation SDK

Usage no npm install needed!

<script type="module">
  import adobeAioLibPhotoshopApi from 'https://cdn.skypack.dev/@adobe/aio-lib-photoshop-api';
</script>

README

Version Downloads/week Build Status License Codecov Coverage

Adobe I/O Photoshop API SDK

Rest API

The Rest API is documented at:

Installing

$ npm install @adobe/aio-lib-photoshop-api

Usage

  1. Initialize the SDK
const sdk = require('@adobe/aio-lib-photoshop-api')

async function sdkTest() {
  try {
    //initialize sdk
    const client = await sdk.init('<ims org id>', '<api key>', '<valid auth token>')
  } catch (e) {
    console.error(e)
  }
}
  1. Remove the background of a photo

This is the example of using the storage type of http://host/input.jpg (External) and call the service to cutout the background, ask for JPEG output, and store the result in Adobe Creative Cloud file storage path/output.jpg.

const sdk = require('@adobe/aio-lib-photoshop-api')

async function sdkTest() {
  try {
    // initialize sdk
    const client = await sdk.init('<ims org id>', '<api key>', '<valid auth token>')

    // call methods
    const result = await client.createCutout({
      href: 'http://host/input.jpg',
      storage: sdk.Storage.EXTERNAL
    }, {
      href: 'path/output.png',
      storage: sdk.Storage.ADOBE,
      type: sdk.MimeType.PNG
    })
  } catch (e) {
    console.error(e)
  }
}

Usage with Adobe I/O Files access

  1. Initialize the SDK with Adobe I/O Files access

Configuring the SDK like this will make plain paths reference locations in Adobe I/O Files.

const libFiles = require('@adobe/aio-lib-files')
const sdk = require('@adobe/aio-lib-photoshop-api')

async function sdkTest() {
  try {
    // initialize sdk
    const files = await libFiles.init();
    const client = await sdk.init('<ims org id>', '<api key>', '<valid auth token>', files)
  } catch (e) {
    console.error(e)
  }
}
  1. Remove the background of a photo

This will automatically detect the storage type of http://host/input.jpg (e.g. Azure, External) and call the service to cutout the background, ask for JPEG output, and store the result in Adobe I/O Files under path/output.jpg.

const libFiles = require('@adobe/aio-lib-files')
const sdk = require('@adobe/aio-lib-photoshop-api')

async function sdkTest() {
  try {
    // initialize sdk
    const files = await libFiles.init();
    const client = await sdk.init('<ims org id>', '<api key>', '<valid auth token>', files)

    // call methods
    // auto cutout...
    const result = await client.createCutout('http://host/input.jpg', 'path/output.jpg')
    console.log(result)

    // equivalent call without FileResolver...
    const result = await client.createCutout({
      href: 'http://host/input.jpg',
      storage: sdk.Storage.EXTERNAL
    }, {
      href: 'path/output.png',
      storage: sdk.Storage.AIO,
      type: sdk.MimeType.PNG
    })
  } catch (e) {
    console.error(e)
  }
}

Classes

FileResolver

Resolves the storage and mime type of files referenced in the API.

The storage type storage type is resolved for input and output files using the following heuristic:

  • If the storage type is provided, it is used as-is
  • If a URL is provided, the hostname is inspected to determine Azure, Dropbox, or External (default)
  • If a path is provided, the path resolved to Adobe I/O Files if an instance is provided to the constructor, otherwise it's Creative Cloud

Path resolution can be overridden by the defaultAdobeCloudPaths option.

The mime-type is resolved based on the extension of the pathname of the URL or the path. If no extension can be found or the extension is unknown, the default image/png is selected.

PhotoshopAPI

This class provides methods to call your PhotoshopAPI APIs. Before calling any method initialize the instance by calling the init method on it with valid values for orgId, apiKey and accessToken

Job

Abstraction around the Photoshop Services Jobs

Functions

shouldRetryFetch(response)boolean

Determine if we should retry fetch due to Server errors (server busy or other application errors)

nodeFetchRetry(options)function

Fetch a URL, with retry options provided or default retry options otherwise By default retries will happen for 14 seconds (3 retries at 1, 2 and then 4 seconds -- there cannot be enough time for anotehr retry after that) Retry will occur if error code 429 or >= 500 occurs.

getFetchOptions(options)*

Parse through options object and determine correct parameters to Swagger for desired fetch approach

init(orgId, apiKey, accessToken, [files], [options])Promise.<PhotoshopAPI>

Returns a Promise that resolves with a new PhotoshopAPI object.

Typedefs

FileResolverOptions : object

File resolver options

PhotoshopAPIOptions : object

Photoshop API options

Input : object

A reference to an input file

IccProfile : object

Either referencing a standard profile from StandardIccProfileNames in profileName, or a custom profile through input.

Output : object

A reference to an output file, including output options

EditPhotoOptions : object

Set of edit parameters to apply to an image

Bounds : object

Layer bounds (in pixels)

LayerMask : object

Mask applied to an layer

BlendOptions : object

Layer blend options

BrightnessContrast : object

Adjustment layer brightness and contrast settings

Exposure : object

Adjustment layer exposure settings

HueSaturationChannel : object

Master channel hue and saturation settings

HueSaturation : object

Adjustment layer hue and saturation settings

ColorBalance : object

Adjustment layer color balance settings

AdjustmentLayer : object

Adjustment layer settings

FontColorRgb : object

Font color settings for RGB mode (16-bit)

FontColorCmyk : object

Font color settings for CMYK mode (16-bit)

FontColorGray : object

Font color settings for Gray mode (16-bit)

FontColor : object

Font color settings

CharacterStyle : object

Character style settings

ParagraphStyle : object

Paragraph style

TextLayer : object

Text layer settings

SmartObject : object

Smart object settings

FillLayer : object

Fill layer settings

LayerReference : object

Layer reference

AddLayerPosition : object

Position where to add the layer in the layer hierarchy

MoveLayerPosition : object

Position where to move the layer to in the layer hierarchy

Layer : object

Layer to add, replace, move or delete when manipulating a Photoshop document, or retrieved from the manifest

SmartObjectLayer : object

Smart object layer to add or replace

ModifyDocumentOptions : object

Global Photoshop document modification options

CreateDocumentOptions : object

Photoshop document create options

DocumentManifest : object

Photoshop document manifest

ReplaceSmartObjectOptions : object

Replace Smart Object options

JobError : object

Reported job errors

JobOutput : object

Job status and output

FileResolver

Resolves the storage and mime type of files referenced in the API.

The storage type storage type is resolved for input and output files using the following heuristic:

  • If the storage type is provided, it is used as-is
  • If a URL is provided, the hostname is inspected to determine Azure, Dropbox, or External (default)
  • If a path is provided, the path resolved to Adobe I/O Files if an instance is provided to the constructor, otherwise it's Creative Cloud

Path resolution can be overridden by the defaultAdobeCloudPaths option.

The mime-type is resolved based on the extension of the pathname of the URL or the path. If no extension can be found or the extension is unknown, the default image/png is selected.

Kind: global class

new FileResolver([files], [options])

Construct a file resolver

Param Type Description
[files] * Adobe I/O Files instance
[options] FileResolverOptions Options

fileResolver.presignExpiryInSeconds : number

Expiry time of presigned urls in seconds

Kind: instance property of FileResolver

fileResolver.defaultPathStorage : Storage

Plain paths can reference either Adobe Creative Cloud or Adobe I/O Files.

If an instance of files is provided, the default is considered to be Adobe I/O Files, otherwise it's Creative Cloud. The default can be overridden using the options

Kind: instance property of FileResolver

fileResolver.resolveInput(input) ⇒ Input

Resolve input file from href to an object with href and storage

Kind: instance method of FileResolver
Returns: Input - resolved input

Param Type Description
input string | Input Input or href to resolve

fileResolver.resolveInputs(inputs) ⇒ Array.<Input>

Resolve input files from hrefs to an array of objects with href and storage

Kind: instance method of FileResolver
Returns: Array.<Input> - resolved files

Param Type Description
inputs string | Array.<string> | Input | Array.<Input> One or more files

fileResolver.resolveInputsDocumentOptions(options) ⇒ CreateDocumentOptions | ModifyDocumentOptions | ReplaceSmartObjectOptions

Resolve the font and layer inputs in the document options

Kind: instance method of FileResolver
Returns: CreateDocumentOptions | ModifyDocumentOptions | ReplaceSmartObjectOptions - Document options

Param Type Description
options CreateDocumentOptions | ModifyDocumentOptions | ReplaceSmartObjectOptions Document options

fileResolver.resolveInputsPhotoshopActionsOptions(options) ⇒ ApplyPhotoshopActionsOptions

Resolve the actions, fonts, and custom presets options

Kind: instance method of FileResolver
Returns: ApplyPhotoshopActionsOptions - Photoshop Actions options

Param Type Description
options ApplyPhotoshopActionsOptions Photoshop Actions options

fileResolver.resolveOutput(output) ⇒ Output

Resolve output from href to an object with href, storage, and type

Kind: instance method of FileResolver
Returns: Output - resolved files

Param Type Description
output string | File | Output One or more output files

fileResolver.resolveOutputs(outputs) ⇒ Array.<Output>

Resolve outputs from href to an object with href, storage, and type

Kind: instance method of FileResolver
Returns: Array.<Output> - resolved files

Param Type Description
outputs string | Array.<string> | File | Array.<File> | Output | Array.<Output> One or more output files

PhotoshopAPI

This class provides methods to call your PhotoshopAPI APIs. Before calling any method initialize the instance by calling the init method on it with valid values for orgId, apiKey and accessToken

Kind: global class

photoshopAPI.orgId : string

The IMS organization id

Kind: instance property of PhotoshopAPI

photoshopAPI.apiKey : string

The api key from your integration

Kind: instance property of PhotoshopAPI

photoshopAPI.accessToken : string

The access token from your integration

Kind: instance property of PhotoshopAPI

photoshopAPI.init(orgId, apiKey, accessToken, [files], [options]) ⇒ Promise.<PhotoshopAPI>

Initializes the PhotoshopAPI object and returns it.

Kind: instance method of PhotoshopAPI
Returns: Promise.<PhotoshopAPI> - a PhotoshopAPI object

Param Type Description
orgId string the IMS organization id
apiKey string the API key for your integration
accessToken string the access token for your integration
[files] * Adobe I/O Files instance
[options] PhotoshopAPIOptions Options

photoshopAPI.createCutout(input, output) ⇒ Job

Create a cutout mask, and apply it to the input

Kind: instance method of PhotoshopAPI
Returns: Job - Auto cutout job

Param Type Description
input string | Input Input file
output string | Output Output file

photoshopAPI.createMask(input, output) ⇒ Job

Create a cutout mask

Kind: instance method of PhotoshopAPI
Returns: Job - Auto masking job

Param Type Description
input string | Input Input file
output string | Output Output file

photoshopAPI.straighten(input, outputs) ⇒ Job

Straighten photo

Kind: instance method of PhotoshopAPI
Returns: Job - Auto straighten job

Param Type Description
input string | Input Input file
outputs string | Output | Array.<Output> Output file

photoshopAPI.autoTone(input, output) ⇒ Job

Automatically tone photo

Kind: instance method of PhotoshopAPI
Returns: Job - Auto tone job

Param Type Description
input string | Input Input file
output string | Output Output file

photoshopAPI.editPhoto(input, output, options) ⇒ Job

Apply a set of edit parameters on an image

Kind: instance method of PhotoshopAPI
Returns: Job - Edit photo job

Param Type Description
input string | Input Input file
output string | Output Output file
options EditPhotoOptions Edit options

photoshopAPI.applyPreset(input, preset, output) ⇒ Job

Apply a preset on an image

Kind: instance method of PhotoshopAPI
Returns: Job - Apply preset job

Param Type Description
input string | Input Input file
preset string | Input Lightroom preset XMP file
output string | Output Output file

photoshopAPI.applyPresetXmp(input, output, xmp) ⇒ Job

Apply a preset on an image

Kind: instance method of PhotoshopAPI
Returns: Job - Apply preset job

Param Type Description
input string | Input Input file
output string | Output Output file
xmp string Lightroom preset XMP file contents

photoshopAPI.createDocument(outputs, options) ⇒ Job

Create a new psd, optionally with layers, and then generate renditions and/or save as a psd

Kind: instance method of PhotoshopAPI
Returns: Job - Create document job

Param Type Description
outputs string | Array.<string> | Output | Array.<Output> Desired output
options CreateDocumentOptions Document create options

photoshopAPI.getDocumentManifest(input, [options]) ⇒ Job

Extract and return a psd file's layer information

Kind: instance method of PhotoshopAPI
Returns: Job - Get document manifest job

Param Type Description
input string | Input An object describing an input PSD file.Current support is for files less than 1000MB.
[options] object available options to apply to all input files
[options.thumbnails] object Include presigned GET URLs to small preview thumbnails for any renderable layer.
[options.thumbnails.type] MimeType desired image format. Allowed values: "image/jpeg", "image/png", "image/tiff"

photoshopAPI.modifyDocument(input, outputs, options) ⇒ Job

Apply (optional) psd edits and then generate renditions and/or save a new psd

Kind: instance method of PhotoshopAPI
Returns: Job - Modify document job

Param Type Description
input string | Input An object describing an input PSD file. Current support is for files less than 1000MB.
outputs string | Array.<string> | Output | Array.<Output> Desired output
options ModifyDocumentOptions Modify document options

photoshopAPI.createRendition(input, outputs) ⇒ Job

Create renditions

Kind: instance method of PhotoshopAPI
Returns: Job - Create rendition job

Param Type Description
input string | Input An object describing an input file. Currently supported filetypes include: jpeg, png, psd, tiff. Current support is for files less than 1000MB.
outputs string | Array.<string> | Output | Array.<Output> Desired output

photoshopAPI.replaceSmartObject(input, outputs, options) ⇒ Job

Apply psd edits for replacing embedded smart object and then generate renditions and/or save a new psd

Kind: instance method of PhotoshopAPI
Returns: Job - Replace smart object job

Param Type Description
input Input An object describing an input PSD file. Current support is for files less than 1000MB.
outputs string | Output | Array.<Output> Desired output
options ReplaceSmartObjectOptions Replace smart object options

photoshopAPI.applyPhotoshopActions(input, outputs, options) ⇒ Job

Apply Photoshop Actions and then generate renditions and/or save a new psd

Kind: instance method of PhotoshopAPI
Returns: Job - Photoshop Actions job

Param Type Description
input Input An object describing an input image file. Current support is for files less than 1000MB.
outputs string | Output | Array.<Output> Desired output
options ApplyPhotoshopActionsOptions Apply Photoshop Actions options

Job

Abstraction around the Photoshop Services Jobs

Kind: global class

new Job(response, getJobStatus)

Construct a job with the ability to acquire status updates

Param Type Description
response * Service response
getJobStatus function Async function to get job status

job.url : string

URL to request a status update of the job

Kind: instance property of Job

job.jobId : string

Job identifier

Kind: instance property of Job

job.outputs : Array.<JobOutput>

Status of each output sub job

Kind: instance property of Job

job.isDone() ⇒ boolean

Check if the job is done

A job is marked done when it has either the succeeded or failed status.

Kind: instance method of Job
Returns: boolean - True if the job is done, or false if it is still pending/running

job.poll() ⇒ Job

Poll for job status

Kind: instance method of Job
Returns: Job - Job instance

job.pollUntilDone([pollTimeMs]) ⇒ Job

Poll job until done

Kind: instance method of Job
Returns: Job - Job instance

Param Type Default Description
[pollTimeMs] number 2000 Polling time

Storage

Storage types

Kind: global enum
Read only: true
Properties

Name Default Description
AIO aio href is a path in Adobe I/O Files: https://github.com/adobe/aio-lib-files
ADOBE adobe href is a path in Creative Cloud
EXTERNAL external href is a presigned get/put url, e.g. AWS S3
AZURE azure href is an Azure SAS (Shared Access Signature) URL for upload/download
DROPBOX dropbox href is a temporary upload/download Dropbox link: https://dropbox.github.io/dropbox-api-v2-explorer/

MimeType

Mime types

Kind: global enum
Read only: true
Properties

Name Default Description
DNG image/x-adobe-dng Digital Negative, available from autoTone, straighten, applyPreset
JPEG image/jpeg JPEG, available from all operations
PNG image/png PNG, available from all operations
PSD image/vnd.adobe.photoshop Photoshop Document, available from createDocument, modifyDocument, createRendition, replaceSmartObject
TIFF image/tiff TIFF format, available from createDocument, modifyDocument, createRendition, replaceSmartObject

PngCompression

Compression level for PNG: small, medium or large.

Kind: global enum
Read only: true
Properties

Name Default
SMALL small
MEDIUM medium
LARGE large

Colorspace

Color space

Kind: global enum
Read only: true
Properties

Name Default
BITMAP bitmap
GREYSCALE greyscale
INDEXED indexed
RGB rgb
CMYK cmyk
MULTICHANNEL multichannel
DUOTONE duotone
LAB lab

StandardIccProfileNames

Standard ICC profile names

Kind: global enum
Read only: true
Properties

Name Default
ADOBE_RGB_1998 Adobe RGB (1998)
APPLE_RGB Apple RGB
COLORMATCH_RGB ColorMatch RGB
SRGB sRGB IEC61966-2.1
DOTGAIN_10 Dot Gain 10%
DOTGAIN_15 Dot Gain 15%
DOTGAIN_20 Dot Gain 20%
DOTGAIN_25 Dot Gain 25%
DOTGAIN_30 Dot Gain 30%
GRAY_GAMMA_18 Gray Gamma 1.8
GRAY_GAMMA_22 Gray Gamma 2.2

CreateMaskType

Type of mask to create

Kind: global enum
Read only: true
Properties

Name Default Description
BINARY binary Binary mask
SOFT soft Soft mask

WhiteBalance

White balance enum

Kind: global enum
Read only: true
Properties

Name Default
AS_SHOT As Shot
AUTO Auto
CLOUDY Cloudy
CUSTOM Custom
DAYLIGHT Daylight
FLASH Flash
FLUORESCENT Fluorescent
SHADE Shade
TUNGSTEN Tungsten

ManageMissingFonts

Action to take if there are one or more missing fonts in the document

Kind: global enum
Read only: true
Properties

Name Default Description
USE_DEFAULT useDefault The job will succeed, however, by default all the missing fonts will be replaced with this font: ArialMT
FAIL fail The job will not succeed and the status will be set to "failed", with the details of the error provided in the "details" section in the status

BackgroundFill

Background fill

Kind: global enum
Read only: true
Properties

Name Default
WHITE white
BACKGROUND_COLOR backgroundColor
TRANSPARENT transparent

LayerType

Layer type

Kind: global enum
Read only: true
Properties

Name Default Description
LAYER layer A pixel layer
TEXT_LAYER textLayer A text layer
ADJUSTMENT_LAYER adjustmentLayer An adjustment layer
LAYER_SECTION layerSection Group of layers
SMART_OBJECT smartObject A smart object
BACKGROUND_LAYER backgroundLayer The background layer
FILL_LAYER fillLayer A fill layer

BlendMode

Blend modes

Kind: global enum
Read only: true
Properties

Name Default
NORMAL normal
DISSOLVE dissolve
DARKEN darken
MULTIPLY multiply
COLOR_BURN colorBurn
LINEAR_BURN linearBurn
DARKER_COLOR darkerColor
LIGHTEN lighten
SCREEN screen
COLOR_DODGE colorDodge
LINEAR_DODGE linearDodge
LIGHTER_COLOR lighterColor
OVERLAY overlay
SOFT_LIGHT softLight
HARD_LIGHT hardLight
VIVID_LIGHT vividLight
LINEAR_LIGHT linearLight
PIN_LIGHT pinLight
HARD_MIX hardMix
DIFFERENCE difference
EXCLUSION exclusion
SUBTRACT subtract
DIVIDE divide
HUE hue
SATURATION saturation
COLOR color
LUMINOSITY luminosity

TextOrientation

Text orientation

Kind: global enum
Read only: true
Properties

Name Default
HORIZONTAL horizontal
VERTICAL vertical

ParagraphAlignment

Paragraph alignment

Kind: global enum
Read only: true
Properties

Name Default
LEFT left
CENTER center
RIGHT right
JUSTIFY justify
JUSTIFY_LEFT justifyLeft
JUSTIFY_CENTER justifyCenter
JUSTIFY_RIGHT justifyRight

HorizontalAlignment

Horizontal alignment

Kind: global enum
Read only: true
Properties

Name Default
LEFT left
CENTER center
RIGHT right

VerticalAlignment

Vertical alignment

Kind: global enum
Read only: true
Properties

Name Default
TOP top
CENTER center
BOTTOM bottom

JobOutputStatus

Output status

Kind: global enum
Read only: true
Properties

Name Default Description
PENDING pending request has been accepted and is waiting to start
RUNNING running the child job is running
UPLOADING uploading files have been generated and are uploading to destination
SUCCEEDED succeeded the child job has succeeded
FAILED failed the child job has failed

shouldRetryFetch(response) ⇒ boolean

Determine if we should retry fetch due to Server errors (server busy or other application errors)

Kind: global function
Returns: boolean - true if we should retry or false if not

Param Type Description
response * Fetch response object, should at least have a status property which is the HTTP status code received

nodeFetchRetry(options) ⇒ function

Fetch a URL, with retry options provided or default retry options otherwise By default retries will happen for 14 seconds (3 retries at 1, 2 and then 4 seconds -- there cannot be enough time for anotehr retry after that) Retry will occur if error code 429 or >= 500 occurs.

Kind: global function
Returns: function - Wrapped node fetch retry function which takes our preferred default options

Param Type Description
options * Fetch options object, which can also include retryOptions described here https://github.com/adobe/node-fetch-retry

getFetchOptions(options) ⇒ *

Parse through options object and determine correct parameters to Swagger for desired fetch approach

Kind: global function
Returns: * - Swagger options object with relevant settings for fetch module

Param Type Description
options * Photoshop API options object

init(orgId, apiKey, accessToken, [files], [options]) ⇒ Promise.<PhotoshopAPI>

Returns a Promise that resolves with a new PhotoshopAPI object.

Kind: global function
Returns: Promise.<PhotoshopAPI> - a Promise with a PhotoshopAPI object

Param Type Description
orgId string IMS organization id
apiKey string the API key for your integration
accessToken string the access token for your integration
[files] * Adobe I/O Files instance
[options] PhotoshopAPIOptions Options

FileResolverOptions : object

File resolver options

Kind: global typedef
Properties

Name Type Default Description
[presignExpiryInSeconds] number 3600 Expiry time of any presigned urls, defaults to 1 hour
[defaultAdobeCloudPaths] boolean True if paths should be considered references to files in Creative Cloud

PhotoshopAPIOptions : object

Photoshop API options

Kind: global typedef
Properties

Name Type Default Description
[presignExpiryInSeconds] number 3600 Expiry time of any presigned urls, defaults to 1 hour
[defaultAdobeCloudPaths] boolean True if paths should be considered references to files in Creative Cloud
[useSwaggerFetch] boolean false True if Swagger's fetch implementation should be used, otherwise will use userFetch if provided or @adobe/node-fetch-retry if nothing else.
[userFetch] function Fetch function to use replacing Swagger's fetch and node-fetch-retry. Useful for mocking, etc

Input : object

A reference to an input file

Kind: global typedef
Properties

Name Type Description
href string Either an href to a single Creative Cloud asset for storage='adobe' OR a presigned GET URL for other external services.
[storage] Storage Storage type, by default detected based on href

IccProfile : object

Either referencing a standard profile from StandardIccProfileNames in profileName, or a custom profile through input.

Kind: global typedef
Properties

Name Type Description
imageMode Colorspace Image mode
input Input Custom ICC profile href to a Creative Cloud asset or presigned URL
profileName string Standard ICC profile name (e.g. Adobe RGB (1998))

Output : object

A reference to an output file, including output options

Kind: global typedef
Properties

Name Type Default Description
href string (all) Either an href to a single Creative Cloud asset for storage='adobe' OR a presigned GET URL for other external services.
[storage] Storage (all) Storage type, by default detected based on href
[type] MimeType (all) Desired output image format, by default detected based on href extension
[overwrite] boolean true (all) If the file already exists, indicates if the output file should be overwritten. Will eventually support eTags. Only applies to CC Storage
[mask] object (createMask, createCutout) Type of mask to create
mask.format CreateMaskType (createMask, createCutout) Binary or soft mask to create
[width] number 0 (document) width, in pixels, of the renditions. Width of 0 generates a full size rendition. Height is not necessary as the rendition generate will automatically figure out the correct width-to-height aspect ratio. Only supported for image renditions
[quality] number 7 (document) quality of the renditions for JPEG. Range from 1 to 7, with 7 as the highest quality.
[compression] PngCompression large (document) compression level for PNG: small, medium or large
[trimToCanvas] boolean false (document) 'false' generates renditions that are the actual size of the layer (as seen by View > Show > Layer Edges within the Photoshop desktop app) but will remove any extra transparent pixel padding. 'true' generates renditions that are the size of the canvas, either trimming the layer to the visible portion of the canvas or padding extra space. If the requested file format supports transparency than transparent pixels will be used for padding, otherwise white pixels will be used.
[layers] Array.<LayerReference> (document) An array of layer objects. By including this array you are signaling that you'd like a rendition created from these layer id's or layer names. Excluding it will generate a document-level rendition.
[iccProfile] IccProfile (document) Describes the ICC profile to convert to

EditPhotoOptions : object

Set of edit parameters to apply to an image

Kind: global typedef
Properties

Name Type Description
Contrast number integer [ -100 .. 100 ]
Saturation number integer [ -100 .. 100 ]
VignetteAmount number integer [ -100 .. 100 ]
Vibrance number integer [ -100 .. 100 ]
Highlights number integer [ -100 .. 100 ]
Shadows number integer [ -100 .. 100 ]
Whites number integer [ -100 .. 100 ]
Blacks number integer [ -100 .. 100 ]
Clarity number integer [ -100 .. 100 ]
Dehaze number integer [ -100 .. 100 ]
Texture number integer [ -100 .. 100 ]
Sharpness number integer [ 0 .. 150 ]
ColorNoiseReduction number integer [ 0 .. 100 ]
NoiseReduction number integer [ 0 .. 100 ]
SharpenDetail number integer [ 0 .. 100 ]
SharpenEdgeMasking number integer [ 0 .. 10 ]
Exposure number float [ -5 .. 5 ]
SharpenRadius number float [ 0.5 .. 3 ]
WhiteBalance WhiteBalance white balance

Bounds : object

Layer bounds (in pixels)

Kind: global typedef
Properties

Name Type Description
top number Top position of the layer
left number Left position of the layer
width number Layer width
height number Layer height

LayerMask : object

Mask applied to an layer

Kind: global typedef
Properties

Name Type Default Description
[clip] boolean Indicates if this is a clipped layer
[enabled] boolean true Indicates a mask is enabled on that layer or not.
[linked] boolean true Indicates a mask is linked to the layer or not.
[offset] object An object to specify mask offset on the layer.
[offset.x] number 0 Offset to indicate horizontal move of the mask
[offset.y] number 0 Offset to indicate vertical move of the mask

BlendOptions : object

Layer blend options

Kind: global typedef
Properties

Name Type Default Description
[opacity] number 100 Opacity value of the layer
[blendMode] BlendMode "normal" Blend mode of the layer

BrightnessContrast : object

Adjustment layer brightness and contrast settings

Kind: global typedef
Properties

Name Type Default Description
[brightness] number 0 Adjustment layer brightness (-150...150)
[contrast] number 0 Adjustment layer contrast (-150...150)

Exposure : object

Adjustment layer exposure settings

Kind: global typedef
Properties

Name Type Default Description
[exposure] number 0 Adjustment layer exposure (-20...20)
[offset] number 0 Adjustment layer exposure offset (-0.5...0.5)
[gammaCorrection] number 1 Adjustment layer gamma correction (0.01...9.99)

HueSaturationChannel : object

Master channel hue and saturation settings

Kind: global typedef
Properties

Name Type Default Description
[channel] string "&quot;master&quot;" Allowed values: "master"
[hue] number 0 Hue adjustment (-180...180)
[saturation] number 0 Saturation adjustment (-100...100)
[lightness] number 0 Lightness adjustment (-100...100)

HueSaturation : object

Adjustment layer hue and saturation settings

Kind: global typedef
Properties

Name Type Default Description
[colorize] boolean false Colorize
[channels] Array.<HueSaturationChannel> [] An array of hashes representing the 'master' channel (the remaining five channels of 'magentas', 'yellows', 'greens', etc are not yet supported)

ColorBalance : object

Adjustment layer color balance settings

Kind: global typedef
Properties

Name Type Default Description
[preserveLuminosity] boolean true Preserve luminosity
[shadowLevels] Array.<number> [0,0,0] Shadow levels (-100...100)
[midtoneLevels] Array.<number> [0,0,0] Midtone levels (-100...100)
[highlightLevels] Array.<number> [0,0,0] Highlight levels (-100...100)

AdjustmentLayer : object

Adjustment layer settings

Kind: global typedef
Properties

Name Type Description
[brightnessContrast] BrightnessContrast Brightness and contrast settings
[exposure] Exposure Exposure settings
[hueSaturation] HueSaturation Hue and saturation settings
[colorBalance] ColorBalance Color balance settings

FontColorRgb : object

Font color settings for RGB mode (16-bit)

Kind: global typedef
Properties

Name Type Description
red number Red color (0...32768)
green number Green color (0...32768)
blue number Blue color (0...32768)

FontColorCmyk : object

Font color settings for CMYK mode (16-bit)

Kind: global typedef
Properties

Name Type Description
cyan number Cyan color (0...32768)
magenta number Magenta color (0...32768)
yellowColor number Yellow color (0...32768)
black number Black color (0...32768)

FontColorGray : object

Font color settings for Gray mode (16-bit)

Kind: global typedef
Properties

Name Type Description
gray number Gray color (0...32768)

FontColor : object

Font color settings

Kind: global typedef
Properties

Name Type Description
rgb FontColorRgb Font color settings for RGB mode (16-bit)
cmyk FontColorCmyk Font color settings for CMYK mode (16-bit)
gray FontColorGray Font color settings for Gray mode (16-bit)

CharacterStyle : object

Character style settings

Kind: global typedef
Properties

Name Type Default Description
[from] number The beginning of the range of characters that this characterStyle applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1
[to] number The ending of the range of characters that this characterStyle applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1
[fontSize] number Font size (in points)
[fontName] string Font postscript name (see https://github.com/AdobeDocs/photoshop-api-docs/blob/master/SupportedFonts.md)
[orientation] TextOrientation "horizontal" Text orientation
[fontColor] FontColor The font color settings (one of rgb, cmyk, gray, lab)

ParagraphStyle : object

Paragraph style

Kind: global typedef
Properties

Name Type Default Description
[alignment] ParagraphAlignment "left" Paragraph alignment
[from] number The beginning of the range of characters that this paragraphStyle applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1
[to] number The ending of the range of characters that this characterStyle applies to. Based on initial index of 0. For example a style applied to only the first two characters would be from=0 and to=1

TextLayer : object

Text layer settings

Kind: global typedef
Properties

Name Type Description
content string The text string
[characterStyles] Array.<CharacterStyle> If the same supported attributes apply to all characters in the layer than this will be an array of one item, otherwise each characterStyle object will have a 'from' and 'to' value indicating the range of characters that the style applies to.
[paragraphStyles] Array.<ParagraphStyle> If the same supported attributes apply to all characters in the layer than this will be an array of one item, otherwise each paragraphStyle object will have a 'from' and 'to' value indicating the range of characters that the style applies to.

SmartObject : object

Smart object settings

Kind: global typedef
Properties

Name Type Default Description
type string Desired image format for the smart object
[linked] boolean false Indicates if this smart object is linked.
[path] string Relative path for the linked smart object

FillLayer : object

Fill layer settings

Kind: global typedef
Properties

Name Type Description
solidColor object An object describing the solid color type for this fill layer. Currently supported mode is RGB only.
solidColor.red number Red color (0...255)
solidColor.green number Green color (0...255)
solidColor.blue number Blue color (0...255)

LayerReference : object

Layer reference

Kind: global typedef
Properties

Name Type Description
[id] number The id of the layer you want to move above. Use either id OR name.
[name] string The name of the layer you want to move above. Use either id OR name.

AddLayerPosition : object

Position where to add the layer in the layer hierarchy

Kind: global typedef
Properties

Name Type Description
[insertAbove] LayerReference Used to add the layer above another. If the layer ID indicated is a group layer than the layer will be inserted above the group layer.
[insertBelow] LayerReference Used to add the layer below another. If the layer ID indicated is a group layer than the layer will be inserted below (and outside of) the group layer
[insertInto] LayerReference Used to add the layer inside of a group. Useful when you need to move a layer to an empty group.
[insertTop] boolean Indicates the layer should be added at the top of the layer stack.
[insertBottom] boolean Indicates the layer should be added at the bottom of the layer stack. If the image has a background image than the new layer will be inserted above it instead.

MoveLayerPosition : object

Position where to move the layer to in the layer hierarchy

Kind: global typedef
Properties

Name Type Default Description
[moveChildren] boolean true If layer is a group layer than true = move the set as a unit. Otherwise an empty group is moved and any children are left where they were, un-grouped.
[insertAbove] LayerReference Used to move the layer above another. If the layer ID indicated is a group layer than the layer will be inserted above the group layer.
[insertBelow] LayerReference Used to move the layer below another. If the layer ID indicated is a group layer than the layer will be inserted below (and outside of) the group layer
[insertInto] LayerReference Used to move the layer inside of a group. Useful when you need to move a layer to an empty group.
[insertTop] boolean Indicates the layer should be moved at the top of the layer stack.
[insertBottom] boolean Indicates the layer should be moved at the bottom of the layer stack. If the image has a background image than the new layer will be inserted above it instead.

Layer : object

Layer to add, replace, move or delete when manipulating a Photoshop document, or retrieved from the manifest

Kind: global typedef
Properties

Name Type Default Description
type LayerType The layer type
[id] number (modify, manifest) The layer id
[index] number (modify, manifest) The layer index. Required when deleting a layer, otherwise not used
[children] Array.<Layer> (manifest) An array of nested layer objects. Only layerSections (group layers) can include children
[thumbnail] string (manifest) If thumbnails were requested, a presigned GET URL to the thumbnail
[name] string Layer name
[locked] boolean false Is the layer locked
[visible] boolean true Is the layer visible
input Input (create, modify) An object describing the input file to add or replace for a Pixel or Embedded Smart object layer. Supported image types are PNG or JPEG. Images support bounds. If the bounds do not reflect the width and height of the image the image will be resized to fit the bounds. Smart object replacement supports PNG, JPEG, PSD, SVG, AI, PDF. Added images are always placed at (top,left = 0,0) and bounds are ignored. Edited images are replaced for exact pixel size
[adjustments] AdjustmentLayer Adjustment layer attributes
[bounds] Bounds The bounds of the layer, applicable to: LAYER, TEXT_LAYER, ADJUSTMENT_LAYER, LAYER_SECTION, SMART_OBJECT, FILL_LAYER
[mask] LayerMask An object describing the input mask to be added or replaced to the layer. Supported mask type is Layer Mask. The input file must be a greyscale image. Supported file types are jpeg, png and psd.
[smartObject] SmartObject An object describing the attributes specific to creating or editing a smartObject. SmartObject properties need the input smart object file to operate on, which can be obtained from Input block. Currently we support Embedded Smart Object only. So this block is optional. If you are creating a Linked Smart Object, this is a required block.
[fill] FillLayer Fill layer attributes
[text] TextLayer Text layer attributes
[blendOptions] BlendOptions Blend options of a layer, including opacity and blend mode
[fillToCanvas] boolean false Indicates if this layer needs to be proportionally filled in to the entire canvas of the document. Applicable only to layer type="smartObject" or layer type="layer".
[horizontalAlign] HorizontalAlignment Indicates the horizontal position where this layer needs to be placed at. Applicable only to layer type="smartObject" or layer type="layer".
[verticalAlign] VerticalAlignment Indicates the vertical position where this layer needs to be placed at. Applicable only to layer type="smartObject" or layer type="layer".
[edit] object (modify) Indicates you want to edit the layer identified by it's id or name. Note the object is currently empty but leaves room for futher enhancements. The layer block should than contain changes from the original manifest. If you apply it to a group layer you will be effecting the attributes of the group layer itself, not the child layers
[move] MoveLayerPosition (modify) Indicates you want to move the layer identified by it's id or name. You must also indicate where you want to move the layer by supplying one of the attributes insertAbove, insertBelow, insertInto, insertTop or insertBottom
[add] AddLayerPosition (modify) Indicates you want to add a new layer. You must also indicate where you want to ins