# 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)

  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

  property clipping_layer

    Clipping flag for this layer. Writable.

    Returns:

      bool

  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)

  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

  property clipping_layer

    Clipping flag for this layer. Writable.

    Returns:

      bool

  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)

  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

  property clipping_layer

    Clipping flag for this layer. Writable.

    Returns:

      bool

  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)

  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)

  Curves adjustment.

  property data

    Raw data.

    Returns:

      `Curves`

  property extra

### Exposure

class psd_tools.api.adjustments.Exposure(*args)

  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)

  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)

  Vibrance adjustment.

  property saturation

    Saturation.

    Returns:

      int

  property vibrance

    Vibrance.

    Returns:

      int

### HueSaturation

class psd_tools.api.adjustments.HueSaturation(*args)

  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)

  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)

  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)

  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)

  Channel mixer adjustment.

  property data
  property monochrome

### ColorLookup

class psd_tools.api.adjustments.ColorLookup(*args)

  Color lookup adjustment.

### Posterize

class psd_tools.api.adjustments.Posterize(*args)

  Posterize adjustment.

  property posterize

    Posterize value.

    Returns:

      int

### Threshold

class psd_tools.api.adjustments.Threshold(*args)

  Threshold adjustment.

  property threshold

    Threshold value.

    Returns:

      int

### SelectiveColor

class psd_tools.api.adjustments.SelectiveColor(*args)

  Selective color adjustment.

  property data
  property method

### GradientMap

class psd_tools.api.adjustments.GradientMap(*args)

  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