psd_tools.api.shape

Shape module.

In PSD/PSB, shapes are all represented as VectorMask in each layer, and optionally there might be Origination object to control live shape properties and Stroke to specify how outline is stylized.

VectorMask

class psd_tools.api.shape.VectorMask(data)[source]

Vector mask data.

Vector mask is a resolution-independent mask that consists of one or more Path objects. In Photoshop, all the path objects are represented as Bezier curves. Check paths property for how to deal with path objects.

property bbox

Bounding box tuple (left, top, right, bottom) in relative coordinates, where top-left corner is (0., 0.) and bottom-right corner is (1., 1.).

Returns

tuple

property clipboard_record

Clipboard record containing bounding box information.

Depending on the Photoshop version, this field can be None.

property disabled

If the mask is disabled.

property initial_fill_rule

Initial fill rule.

When 0, fill inside of the path. When 1, fill outside of the shape.

Returns

int

property inverted

Invert the mask.

property not_linked

If the knots are not linked.

property paths

List of Subpath. Subpath is a list-like structure that contains one or more Knot items. Knot contains relative coordinates of control points for a Bezier curve. index indicates which origination item the subpath belongs, and operation indicates how to combine multiple shape paths.

In PSD, path fill rule is even-odd.

Example:

for subpath in layer.vector_mask.paths:
    anchors = [(
        int(knot.anchor[1] * psd.width),
        int(knot.anchor[0] * psd.height),
    ) for knot in subpath]
Returns

List of Subpath.

Stroke

class psd_tools.api.shape.Stroke(data)[source]

Stroke contains decorative information for strokes.

This is a thin wrapper around Descriptor structure. Check _data attribute to get the raw data.

property blend_mode

Blend mode.

property content

Fill effect.

property enabled

If the stroke is enabled.

property fill_enabled

If the stroke fill is enabled.

property line_alignment

Alignment, one of inner, outer, center.

property line_cap_type

Cap type, one of butt, round, square.

property line_dash_offset

Line dash offset in float.

Returns

float

property line_dash_set

Line dash set in list of UnitFloat.

Returns

list

property line_join_type

Join type, one of miter, round, bevel.

property line_width

Stroke width in float.

property miter_limit

Miter limit in float.

property opacity

Opacity value.

property stroke_adjust

Stroke adjust

Origination

Origination keeps live shape properties for some of the primitive shapes. Origination objects are accessible via origination property of layers. Following primitive shapes are defined: Invalidated, Line, Rectangle, Ellipse, and RoundedRectangle.

Invalidated

class psd_tools.api.shape.Invalidated(data)[source]

Invalidated live shape.

This equals to a primitive shape that does not provide Live shape properties. Use VectorMask to access shape information instead of this origination object.

property invalidated
Returns

bool

Line

class psd_tools.api.shape.Line(data)[source]

Line live shape.

property arrow_conc
Returns

int

property arrow_end

Line arrow end.

Returns

bool

property arrow_length

Line arrow length.

Returns

float

property arrow_start

Line arrow start.

Returns

bool

property arrow_width

Line arrow width.

Returns

float

property bbox

Bounding box of the live shape.

Returns

Descriptor

property index

Origination item index.

Returns

int

property invalidated
Returns

bool

property line_end

Line end.

Returns

Descriptor

property line_start

Line start.

Returns

Descriptor

property line_weight

Line weight

Returns

float

property origin_type

Type of the vector shape.

Returns

int

property resolution

Resolution.

Returns

float

Ellipse

class psd_tools.api.shape.Ellipse(data)[source]

Ellipse live shape.

property bbox

Bounding box of the live shape.

Returns

Descriptor

property index

Origination item index.

Returns

int

property invalidated
Returns

bool

property origin_type

Type of the vector shape.

Returns

int

property resolution

Resolution.

Returns

float

Rectangle

class psd_tools.api.shape.Rectangle(data)[source]

Rectangle live shape.

property bbox

Bounding box of the live shape.

Returns

Descriptor

property index

Origination item index.

Returns

int

property invalidated
Returns

bool

property origin_type

Type of the vector shape.

Returns

int

property resolution

Resolution.

Returns

float

RoundedRectangle

class psd_tools.api.shape.RoundedRectangle(data)[source]

Rounded rectangle live shape.

property bbox

Bounding box of the live shape.

Returns

Descriptor

property index

Origination item index.

Returns

int

property invalidated
Returns

bool

property origin_type

Type of the vector shape.

Returns

int

property radii

Corner radii of rounded rectangles. The order is top-left, top-right, bottom-left, bottom-right.

Returns

Descriptor

property resolution

Resolution.

Returns

float