Files

392 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
PSDImage
classpsd_tools.PSDImage(data: PSD)[source]
Photoshop PSD/PSB file object.
The low-level data structure is accessible at PSDImage._record.
Example:
from psd_tools import PSDImage
psd = PSDImage.open('example.psd')
image = psd.compose()
for layer in psd:
layer_image = layer.compose()
append(layer: Layer)→ None
Add a layer to the end (top) of the group
Parameters
:
layer – The layer to add
propertybbox: tuple[int, int, int, int]
Minimal bounding box that contains all the visible layers.
Use viewbox to get viewport bounding box. When the psd is empty, bbox is equal to the canvas bounding box.
Returns
:
(left, top, right, bottom) tuple.
propertybottom: int
Bottom coordinate.
Returns
:
int
propertychannels: int
Number of color channels.
Returns
:
int
clear()→ None
Clears the group.
propertycolor_mode: ColorMode
Document color mode, such as ‘RGB’ or ‘GRAYSCALE’. See ColorMode.
Returns
:
ColorMode
propertycompatibility_mode: CompatibilityMode
Set the compositing and layer organization compatibility mode. Writable.
Returns
:
CompatibilityMode
composite(viewport: tuple[int, int, int, int] | None = None, force: bool = False, color: float | tuple[float, ...] = 1.0, alpha: float = 0.0, layer_filter: Callable | None = None, ignore_preview: bool = False, apply_icc: bool = True)[source]
Composite the PSD image.
Parameters
:
viewport – Viewport bounding box specified by (x1, y1, x2, y2) tuple. Default is the viewbox of the PSD.
ignore_preview – Boolean flag to whether skip compositing when a pre-composited preview is available.
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.
count(layer: Layer)→ int
Counts the number of occurences of a layer in the group.
Parameters
:
layer
propertydepth: int
Pixel depth bits.
Returns
:
int
descendants(include_clip: bool = True)→ Iterator[Layer]
Return a generator to iterate over all descendant layers.
Example:
# Iterate over all layers
for layer in psd.descendants():
print(layer)
# Iterate over all layers in reverse order
for layer in reversed(list(psd.descendants())):
print(layer)
Parameters
:
include_clip – include clipping layers.
extend(layers: Iterable[Layer])→ None
Add a list of layers to the end (top) of the group
Parameters
:
layers – The layers to add
find(name: str)→ Layer | None
Returns the first layer found for the given layer name
Parameters
:
name
findall(name: str)→ Iterator[Layer]
Return a generator to iterate over all layers with the given name.
Parameters
:
name
classmethodfrompil(image: Image, compression=Compression.RLE)→ Self[source]
Create a new PSD document from PIL Image.
Parameters
:
image – PIL Image object.
compression – ImageData compression option. See Compression.
Returns
:
A PSDImage object.
has_preview()→ bool[source]
Returns if the document has real merged data. When True, topil() returns pre-composed data.
has_thumbnail()→ bool[source]
True if the PSDImage has a thumbnail resource.
propertyheight: int
Document height.
Returns
:
int
propertyimage_resources: ImageResources
Document image resources. ImageResources is a dict-like structure that keeps various document settings.
See psd_tools.constants.Resource for available keys.
Returns
:
ImageResources
Example:
from psd_tools.constants import Resource
version_info = psd.image_resources.get_data(Resource.VERSION_INFO)
slices = psd.image_resources.get_data(Resource.SLICES)
Image resources contain an ICC profile. The following shows how to export a PNG file with embedded ICC profile:
from psd_tools.constants import Resource
icc_profile = psd.image_resources.get_data(Resource.ICC_PROFILE)
image = psd.compose(apply_icc=False)
image.save('output.png', icc_profile=icc_profile)
index(layer: Layer)→ int
Returns the index of the specified layer in the group.
Parameters
:
layer
insert(index: int, layer: Layer)→ None
Insert the given layer at the specified index.
Parameters
:
index
layer
is_group()→ bool[source]
Return True if the layer is a group.
Returns
:
bool
is_visible()→ bool[source]
Returns visibility of the element.
Returns
:
bool
propertykind: str
Kind.
Returns
:
‘psdimage’
propertyleft: int
Left coordinate.
Returns
:
0
propertyname: str
Element name.
Returns
:
‘Root’
classmethodnew(mode: str, size: tuple[int, int], color: int = 0, depth: Literal[8, 16, 32] = 8, **kwargs: Any)[source]
Create a new PSD document.
Parameters
:
mode – The color mode to use for the new image.
size – A tuple containing (width, height) in pixels.
color – What color to use for the image. Default is black.
Returns
:
A PSDImage object.
numpy(channel: Literal['color', 'shape', 'alpha', 'mask'] | None = None)→ ndarray[source]
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
propertyoffset: tuple[int, int]
(left, top) tuple.
Returns
:
tuple
classmethodopen(fp: BinaryIO | str | bytes | PathLike, **kwargs: Any)→ Self[source]
Open a PSD document.
Parameters
:
fp – filename or file-like object.
encoding – charset encoding of the pascal string within the file, default ‘macroman’. Some psd files need explicit encoding option.
Returns
:
A PSDImage object.
propertyparent: None
Parent of this layer.
pop(index: int = -1)→ Layer
Removes the specified layer from the list and returns it.
Parameters
:
index
remove(layer: Layer)→ Self
Removes the specified layer from the group
Parameters
:
layer
propertyright: int
Right coordinate.
Returns
:
int
save(fp: BinaryIO | str | bytes | PathLike, mode: str = 'wb', **kwargs: Any)→ None[source]
Save the PSD file. Updates the ImageData section if the layer structure has been updated.
Parameters
:
fp – filename or file-like object.
encoding – charset encoding of the pascal string within the file, default ‘macroman’.
mode – file open mode, default ‘wb’.
propertysize: tuple[int, int]
(width, height) tuple.
Returns
:
tuple
propertytagged_blocks: TaggedBlocks | None
Document 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
patterns = psd.tagged_blocks.get_data(Tag.PATTERNS1)
thumbnail()→ Image | None[source]
Returns a thumbnail image in PIL.Image. When the file does not contain an embedded thumbnail image, returns None.
propertytop: int
Top coordinate.
Returns
:
0
topil(channel: int | ChannelID | None = None, apply_icc: bool = True)→ Image | None[source]
Get PIL Image.
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 composed image is not available.
propertyversion: int
Document version. PSD file is 1, and PSB file is 2.
Returns
:
int
propertyviewbox: tuple[int, int, int, int]
Return bounding box of the viewport.
Returns
:
(left, top, right, bottom) tuple.
propertyvisible: bool
Visibility.
Returns
:
True
propertywidth: int
Document width.
Returns
:
int