psd_tools.api.adjustments

Adjustment and fill layers.

Example:

if layer.kind == 'brightnesscontrast':
    print(layer.brightness)

if layer.kind == 'gradientfill':
    print(layer.gradient_kind)

Fill layers

Fill layers are similar to ShapeLayer except that the layer might not have an associated vector mask. The layer therefore expands the entire canvas of the PSD document.

Fill layers all inherit from FillLayer.

Example:

if isinstance(layer, psd_tools.layers.FillLayer):
    image = layer.compose()

SolidColorFill

class psd_tools.api.adjustments.SolidColorFill(*args)[source]

Solid color fill.

property bbox

(left, top, right, bottom) tuple.

property blend_mode

Blend mode of this layer. Writable.

Example:

from psd_tools.constants import BlendMode
if layer.blend_mode == BlendMode.NORMAL:
    layer.blend_mode = BlendMode.SCREEN
Returns

BlendMode.

property bottom

Bottom coordinate.

Returns

int

property clip_layers

Clip layers associated with this layer.

To compose clipping layers:

from psd_tools import compose
clip_mask = compose(layer.clip_layers)
Returns

list of layers

compose(force=False, bbox=None, layer_filter=None)

Deprecated, use composite().

Compose layer and masks (mask, vector mask, and clipping layers).

Note that the resulting image size is not necessarily equal to the layer size due to different mask dimensions. The offset of the composed image is stored at .info[‘offset’] attribute of PIL.Image.

Parameters

bbox – Viewport bounding box specified by (x1, y1, x2, y2) tuple.

Returns

PIL.Image, or None if the layer has no pixel.

composite(viewport=None, force=False, color=1.0, alpha=0.0, layer_filter=None, apply_icc=False)

Composite layer and masks (mask, vector mask, and clipping layers).

Parameters
  • viewport – Viewport bounding box specified by (x1, y1, x2, y2) tuple. Default is the layer’s bbox.

  • force – Boolean flag to force vector drawing.

  • color – Backdrop color specified by scalar or tuple of scalar. The color value should be in [0.0, 1.0]. For example, (1., 0., 0.) specifies red in RGB color mode.

  • alpha – Backdrop alpha in [0.0, 1.0].

  • layer_filter – Callable that takes a layer as argument and returns whether if the layer is composited. Default is is_visible().

Returns

PIL.Image.

property data

Color in Descriptor(RGB).

property effects

Layer effects.

Returns

Effects

has_clip_layers()

Returns True if the layer has associated clipping.

Returns

bool

has_effects()

Returns True if the layer has effects.

Returns

bool

has_mask()

Returns True if the layer has a mask.

Returns

bool

has_origination()

Returns True if the layer has live shape properties.

Returns

bool

has_pixels()

Returns True if the layer has associated pixels. When this is True, topil method returns PIL.Image.

Returns

bool

has_stroke()

Returns True if the shape has a stroke.

has_vector_mask()

Returns True if the layer has a vector mask.

Returns

bool

property height

Height of the layer.

Returns

int

is_group()

Return True if the layer is a group.

Returns

bool

is_visible()

Layer visibility. Takes group visibility in account.

Returns

bool

property kind

Kind of this layer, such as group, pixel, shape, type, smartobject, or psdimage. Class name without layer suffix.

Returns

str

property layer_id

Layer ID.

Returns

int layer id. if the layer is not assigned an id, -1.

property left

Left coordinate. Writable.

Returns

int

property mask

Returns mask associated with this layer.

Returns

Mask or None

property name

Layer name. Writable.

Returns

str

numpy(channel=None, real_mask=True)

Get NumPy array of the layer.

Parameters

channel – Which channel to return, can be ‘color’, ‘shape’, ‘alpha’, or ‘mask’. Default is ‘color+alpha’.

Returns

numpy.ndarray or None if there is no pixel.

property offset

(left, top) tuple. Writable.

Returns

tuple

property opacity

Opacity of this layer in [0, 255] range. Writable.

Returns

int

property origination

Property for a list of live shapes or a line.

Some of the vector masks have associated live shape properties, that are Photoshop feature to handle primitive shapes such as a rectangle, an ellipse, or a line. Vector masks without live shape properties are plain path objects.

See psd_tools.api.shape.

Returns

List of Invalidated, Rectangle, RoundedRectangle, Ellipse, or Line.

property parent

Parent of this layer.

property right

Right coordinate.

Returns

int

property size

(width, height) tuple.

Returns

tuple

property stroke

Property for strokes.

property tagged_blocks

Layer tagged blocks that is a dict-like container of settings.

See psd_tools.constants.Tag for available keys.

Returns

TaggedBlocks or None.

Example:

from psd_tools.constants import Tag
metadata = layer.tagged_blocks.get_data(Tag.METADATA_SETTING)
property top

Top coordinate. Writable.

Returns

int

topil(channel=None, apply_icc=False)

Get PIL Image of the layer.

Parameters
  • channel – Which channel to return; e.g., 0 for ‘R’ channel in RGB image. See ChannelID. When None, the method returns all the channels supported by PIL modes.

  • apply_icc – Whether to apply ICC profile conversion to sRGB.

Returns

PIL.Image, or None if the layer has no pixels.

Example:

from psd_tools.constants import ChannelID

image = layer.topil()
red = layer.topil(ChannelID.CHANNEL_0)
alpha = layer.topil(ChannelID.TRANSPARENCY_MASK)

Note

Not all of the PSD image modes are supported in PIL.Image. For example, ‘CMYK’ mode cannot include alpha channel in PIL. In this case, topil drops alpha channel.

property vector_mask

Returns vector mask associated with this layer.

Returns

VectorMask or None

property visible

Layer visibility. Doesn’t take group visibility in account. Writable.

Returns

bool

property width

Width of the layer.

Returns

int

PatternFill

class psd_tools.api.adjustments.PatternFill(*args)[source]

Pattern fill.

property bbox

(left, top, right, bottom) tuple.

property blend_mode

Blend mode of this layer. Writable.

Example:

from psd_tools.constants import BlendMode
if layer.blend_mode == BlendMode.NORMAL:
    layer.blend_mode = BlendMode.SCREEN
Returns

BlendMode.

property bottom

Bottom coordinate.

Returns

int

property clip_layers

Clip layers associated with this layer.

To compose clipping layers:

from psd_tools import compose
clip_mask = compose(layer.clip_layers)
Returns

list of layers

compose(force=False, bbox=None, layer_filter=None)

Deprecated, use composite().

Compose layer and masks (mask, vector mask, and clipping layers).

Note that the resulting image size is not necessarily equal to the layer size due to different mask dimensions. The offset of the composed image is stored at .info[‘offset’] attribute of PIL.Image.

Parameters

bbox – Viewport bounding box specified by (x1, y1, x2, y2) tuple.

Returns

PIL.Image, or None if the layer has no pixel.

composite(viewport=None, force=False, color=1.0, alpha=0.0, layer_filter=None, apply_icc=False)

Composite layer and masks (mask, vector mask, and clipping layers).

Parameters
  • viewport – Viewport bounding box specified by (x1, y1, x2, y2) tuple. Default is the layer’s bbox.

  • force – Boolean flag to force vector drawing.

  • color – Backdrop color specified by scalar or tuple of scalar. The color value should be in [0.0, 1.0]. For example, (1., 0., 0.) specifies red in RGB color mode.

  • alpha – Backdrop alpha in [0.0, 1.0].

  • layer_filter – Callable that takes a layer as argument and returns whether if the layer is composited. Default is is_visible().

Returns

PIL.Image.

property data

Pattern in Descriptor(PATTERN).

property effects

Layer effects.

Returns

Effects

has_clip_layers()

Returns True if the layer has associated clipping.

Returns

bool

has_effects()

Returns True if the layer has effects.

Returns

bool

has_mask()

Returns True if the layer has a mask.

Returns

bool

has_origination()

Returns True if the layer has live shape properties.

Returns

bool

has_pixels()

Returns True if the layer has associated pixels. When this is True, topil method returns PIL.Image.

Returns

bool

has_stroke()

Returns True if the shape has a stroke.

has_vector_mask()

Returns True if the layer has a vector mask.

Returns

bool

property height

Height of the layer.

Returns

int

is_group()

Return True if the layer is a group.

Returns

bool

is_visible()

Layer visibility. Takes group visibility in account.

Returns

bool

property kind

Kind of this layer, such as group, pixel, shape, type, smartobject, or psdimage. Class name without layer suffix.

Returns

str

property layer_id

Layer ID.

Returns

int layer id. if the layer is not assigned an id, -1.

property left

Left coordinate. Writable.

Returns

int

property mask

Returns mask associated with this layer.

Returns

Mask or None

property name

Layer name. Writable.

Returns

str

numpy(channel=None, real_mask=True)

Get NumPy array of the layer.

Parameters

channel – Which channel to return, can be ‘color’, ‘shape’, ‘alpha’, or ‘mask’. Default is ‘color+alpha’.

Returns

numpy.ndarray or None if there is no pixel.

property offset

(left, top) tuple. Writable.

Returns

tuple

property opacity

Opacity of this layer in [0, 255] range. Writable.

Returns

int

property origination

Property for a list of live shapes or a line.

Some of the vector masks have associated live shape properties, that are Photoshop feature to handle primitive shapes such as a rectangle, an ellipse, or a line. Vector masks without live shape properties are plain path objects.

See psd_tools.api.shape.

Returns

List of Invalidated, Rectangle, RoundedRectangle, Ellipse, or Line.

property parent

Parent of this layer.

property right

Right coordinate.

Returns

int

property size

(width, height) tuple.

Returns

tuple

property stroke

Property for strokes.

property tagged_blocks

Layer tagged blocks that is a dict-like container of settings.

See psd_tools.constants.Tag for available keys.

Returns

TaggedBlocks or None.

Example:

from psd_tools.constants import Tag
metadata = layer.tagged_blocks.get_data(Tag.METADATA_SETTING)
property top

Top coordinate. Writable.

Returns

int

topil(channel=None, apply_icc=False)

Get PIL Image of the layer.

Parameters
  • channel – Which channel to return; e.g., 0 for ‘R’ channel in RGB image. See ChannelID. When None, the method returns all the channels supported by PIL modes.

  • apply_icc – Whether to apply ICC profile conversion to sRGB.

Returns

PIL.Image, or None if the layer has no pixels.

Example:

from psd_tools.constants import ChannelID

image = layer.topil()
red = layer.topil(ChannelID.CHANNEL_0)
alpha = layer.topil(ChannelID.TRANSPARENCY_MASK)

Note

Not all of the PSD image modes are supported in PIL.Image. For example, ‘CMYK’ mode cannot include alpha channel in PIL. In this case, topil drops alpha channel.

property vector_mask

Returns vector mask associated with this layer.

Returns

VectorMask or None

property visible

Layer visibility. Doesn’t take group visibility in account. Writable.

Returns

bool

property width

Width of the layer.

Returns

int

GradientFill

class psd_tools.api.adjustments.GradientFill(*args)[source]

Gradient fill.

property bbox

(left, top, right, bottom) tuple.

property blend_mode

Blend mode of this layer. Writable.

Example:

from psd_tools.constants import BlendMode
if layer.blend_mode == BlendMode.NORMAL:
    layer.blend_mode = BlendMode.SCREEN
Returns

BlendMode.

property bottom

Bottom coordinate.

Returns

int

property clip_layers

Clip layers associated with this layer.

To compose clipping layers:

from psd_tools import compose
clip_mask = compose(layer.clip_layers)
Returns

list of layers

compose(force=False, bbox=None, layer_filter=None)

Deprecated, use composite().

Compose layer and masks (mask, vector mask, and clipping layers).

Note that the resulting image size is not necessarily equal to the layer size due to different mask dimensions. The offset of the composed image is stored at .info[‘offset’] attribute of PIL.Image.

Parameters

bbox – Viewport bounding box specified by (x1, y1, x2, y2) tuple.

Returns

PIL.Image, or None if the layer has no pixel.

composite(viewport=None, force=False, color=1.0, alpha=0.0, layer_filter=None, apply_icc=False)

Composite layer and masks (mask, vector mask, and clipping layers).

Parameters
  • viewport – Viewport bounding box specified by (x1, y1, x2, y2) tuple. Default is the layer’s bbox.

  • force – Boolean flag to force vector drawing.

  • color – Backdrop color specified by scalar or tuple of scalar. The color value should be in [0.0, 1.0]. For example, (1., 0., 0.) specifies red in RGB color mode.

  • alpha – Backdrop alpha in [0.0, 1.0].

  • layer_filter – Callable that takes a layer as argument and returns whether if the layer is composited. Default is is_visible().

Returns

PIL.Image.

property data

Gradient in Descriptor(GRADIENT).

property effects

Layer effects.

Returns

Effects

property gradient_kind

Kind of the gradient, one of the following:

  • Linear

  • Radial

  • Angle

  • Reflected

  • Diamond

has_clip_layers()

Returns True if the layer has associated clipping.

Returns

bool

has_effects()

Returns True if the layer has effects.

Returns

bool

has_mask()

Returns True if the layer has a mask.

Returns

bool

has_origination()

Returns True if the layer has live shape properties.

Returns

bool

has_pixels()

Returns True if the layer has associated pixels. When this is True, topil method returns PIL.Image.

Returns

bool

has_stroke()

Returns True if the shape has a stroke.

has_vector_mask()

Returns True if the layer has a vector mask.

Returns

bool

property height

Height of the layer.

Returns

int

is_group()

Return True if the layer is a group.

Returns

bool

is_visible()

Layer visibility. Takes group visibility in account.

Returns

bool

property kind

Kind of this layer, such as group, pixel, shape, type, smartobject, or psdimage. Class name without layer suffix.

Returns

str

property layer_id

Layer ID.

Returns

int layer id. if the layer is not assigned an id, -1.

property left

Left coordinate. Writable.

Returns

int

property mask

Returns mask associated with this layer.

Returns

Mask or None

property name

Layer name. Writable.

Returns

str

numpy(channel=None, real_mask=True)

Get NumPy array of the layer.

Parameters

channel – Which channel to return, can be ‘color’, ‘shape’, ‘alpha’, or ‘mask’. Default is ‘color+alpha’.

Returns

numpy.ndarray or None if there is no pixel.

property offset

(left, top) tuple. Writable.

Returns

tuple

property opacity

Opacity of this layer in [0, 255] range. Writable.

Returns

int

property origination

Property for a list of live shapes or a line.

Some of the vector masks have associated live shape properties, that are Photoshop feature to handle primitive shapes such as a rectangle, an ellipse, or a line. Vector masks without live shape properties are plain path objects.

See psd_tools.api.shape.

Returns

List of Invalidated, Rectangle, RoundedRectangle, Ellipse, or Line.

property parent

Parent of this layer.

property right

Right coordinate.

Returns

int

property size

(width, height) tuple.

Returns

tuple

property stroke

Property for strokes.

property tagged_blocks

Layer tagged blocks that is a dict-like container of settings.

See psd_tools.constants.Tag for available keys.

Returns

TaggedBlocks or None.

Example:

from psd_tools.constants import Tag
metadata = layer.tagged_blocks.get_data(Tag.METADATA_SETTING)
property top

Top coordinate. Writable.

Returns

int

topil(channel=None, apply_icc=False)

Get PIL Image of the layer.

Parameters
  • channel – Which channel to return; e.g., 0 for ‘R’ channel in RGB image. See ChannelID. When None, the method returns all the channels supported by PIL modes.

  • apply_icc – Whether to apply ICC profile conversion to sRGB.

Returns

PIL.Image, or None if the layer has no pixels.

Example:

from psd_tools.constants import ChannelID

image = layer.topil()
red = layer.topil(ChannelID.CHANNEL_0)
alpha = layer.topil(ChannelID.TRANSPARENCY_MASK)

Note

Not all of the PSD image modes are supported in PIL.Image. For example, ‘CMYK’ mode cannot include alpha channel in PIL. In this case, topil drops alpha channel.

property vector_mask

Returns vector mask associated with this layer.

Returns

VectorMask or None

property visible

Layer visibility. Doesn’t take group visibility in account. Writable.

Returns

bool

property width

Width of the layer.

Returns

int

Adjustment layers

Adjustment layers apply image filtering to the composed result. All adjustment layers inherit from AdjustmentLayer. Adjustment layers do not have pixels, and currently ignored in compose. Attempts to call topil on adjustment layers always return None.

Just as any other layer, adjustment layers might have an associated mask or vector mask. Adjustment can appear in other layers’ clipping layers.

Example:

if isinstance(layer, psd_tools.layers.AdjustmentLayer):
    print(layer.kind)

BrightnessContrast

class psd_tools.api.adjustments.BrightnessContrast(*args)[source]

Brightness and contrast adjustment.

property automatic
property brightness
property contrast
property lab
property mean
property use_legacy
property vrsn

Curves

class psd_tools.api.adjustments.Curves(*args)[source]

Curves adjustment.

property data

Raw data.

Returns

Curves

property extra

Exposure

class psd_tools.api.adjustments.Exposure(*args)[source]

Exposure adjustment.

property exposure

Exposure.

Returns

float

property gamma

Gamma.

Returns

float

property offset

Offset.

Returns

float

Levels

class psd_tools.api.adjustments.Levels(*args)[source]

Levels adjustment.

Levels contain a list of LevelRecord.

property data

List of level records. The first record is the master.

Returns

Levels.

property master

Master record.

Vibrance

class psd_tools.api.adjustments.Vibrance(*args)[source]

Vibrance adjustment.

property saturation

Saturation.

Returns

int

property vibrance

Vibrance.

Returns

int

HueSaturation

class psd_tools.api.adjustments.HueSaturation(*args)[source]

Hue/Saturation adjustment.

HueSaturation contains a list of data.

property colorization

Colorization.

Returns

tuple

property data

List of Hue/Saturation records.

Returns

list

property enable_colorization

Enable colorization.

Returns

int

property master

Master record.

Returns

tuple

ColorBalance

class psd_tools.api.adjustments.ColorBalance(*args)[source]

Color balance adjustment.

property highlights

Highlights.

Returns

tuple

property luminosity

Luminosity.

Returns

int

property midtones

Mid-tones.

Returns

tuple

property shadows

Shadows.

Returns

tuple

BlackAndWhite

class psd_tools.api.adjustments.BlackAndWhite(*args)[source]

Black and white adjustment.

property blue
property cyan
property green
property magenta
property preset_file_name
property preset_kind
property red
property tint_color
property use_tint
property yellow

PhotoFilter

class psd_tools.api.adjustments.PhotoFilter(*args)[source]

Photo filter adjustment.

property color_components
property color_space
property density
property luminosity
property xyz

xyz.

Returns

bool

ChannelMixer

class psd_tools.api.adjustments.ChannelMixer(*args)[source]

Channel mixer adjustment.

property data
property monochrome

ColorLookup

class psd_tools.api.adjustments.ColorLookup(*args)[source]

Color lookup adjustment.

Posterize

class psd_tools.api.adjustments.Posterize(*args)[source]

Posterize adjustment.

property posterize

Posterize value.

Returns

int

Threshold

class psd_tools.api.adjustments.Threshold(*args)[source]

Threshold adjustment.

property threshold

Threshold value.

Returns

int

SelectiveColor

class psd_tools.api.adjustments.SelectiveColor(*args)[source]

Selective color adjustment.

property data
property method

GradientMap

class psd_tools.api.adjustments.GradientMap(*args)[source]

Gradient map adjustment.

property color_model
property color_stops
property dithered
property expansion
property gradient_name
property interpolation

Interpolation between 0.0 and 1.0.

property length
property max_color
property min_color
property mode
property random_seed
property reversed
property roughness
property show_transparency
property transparency_stops
property use_vector_color