定制 pixelfactory/psd-php 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pixelfactory/psd-php

最新稳定版本:1.0.0

Composer 安装命令:

composer require pixelfactory/psd-php

包简介

Library for reading psd file

README 文档

README

PSD-PHP

Logo

Library for reading psd file

Installation

composer require pixelfactory/psd-php

Usage

Create an instance of the 'Psd' class by passing the file path.

require_once '../vendor/autoload.php';

$psd = new \Psd\Psd('./image.psd');

Then you have two ways to use the library, 'simple' and 'professional'
Simple - way is suitable for those who are not familiar with the structure of the psd file and just want to get the necessary information
Professional - way can be used by more experienced developers to get access to a specific part of the file

Simple

Getting file sizes

$psd = new \Psd\Psd('./image.psd');
$psdSimpleMethods = $psd->getShortcuts();

echo $psdSimpleMethods->getWidth();    // Print file width
echo $psdSimpleMethods->getHeight();   // Print file height

Saving an image

$psd = new \Psd\Psd('./image.psd');
$psdSimpleMethods = $psd->getShortcuts();

var_dump($psdSimpleMethods->savePreview('./out.png')); // Print 'true' if file be saved

Working with the layers tree

// TODO
[Layers tree] Moving from directories
// TODO
[Layers tree] Getting information about a layer
// TODO
[Layers tree] Saving a layer image
// TODO

Professional

The psd class has the same structure as the psd file.

Name Method Examples
File header getHeader Link
Color mode data
Image resources getResources Link
Layer and mask information getLayers Link
Image data getImage Link

1 - 'Color mode data' has no method because it is skipped and not processed by the library. This should not affect the work with most images because they have the "rgb" or "cmyk" color mode. This section is used only in the "Indexed" or "Duotone" color mode.

Header data

You can call the 'getHeader' method to get class implements HeaderInterface what contains methods for all fields image header section.

File header section HeaderInterface methods
Signature
Version getVersion
Reserved -
Channels getChannels
height getRows (Alias: getHeight)
width getCols (Alias: getWidth)
Depth getDepth
Color mode getMode (Convert mode number to text: modeName)
- parse
- getNumPixels
- getChannelLength
- getFileLength

Example:

echo $psd->getHeader()->getMode();     // Return file mode (int)
echo $psd->getHeader()->modeName();    // Return file mode name
echo $psd->getHeader()->getChannels(); // Return file count channels

Image resources

Image resources section store additional information. Such as guides, etc.
The library is working with resources:

  • Guides(1032)
  • Layer Comps(1065)
  • Resolution Info(1005)

The full list of resources you can be found in the documentation

To find the necessary resource, you need to call the method getResources (this method return class what extends from ResourcesInterface).
Next, you can use the search by the resource name or resource id.

Example. Get guides:

/** @var \Psd\FileStructure\Resources\Resource\Guides\GuidesData[] $guides */
$guides = $psd
    ->getResources()
    ->getResourceById(\Psd\FileStructure\Resources\Resource\ResourceBase::RESOURCE_ID_GUIDES)
    ->getData();

foreach ($guides as $guide) {
    printf("%s - %s\n", $guide->getDirection(), $guide->getLocation()); // Result: 'vertical - 100'
}

Layer and mask information

// TODO

Image data

This section stores the image. You can get a class for exporting an image using the method getExporter.
Now is available only png class for export image:

/* @var Psd\Image\ImageExport\Exports\Png $exporter */
$exporter = $psd->getImage()->getExporter(\Psd\Image\ImageExport\ImageExport::EXPORT_FORMAT_PNG);

All exporters classes implements interface: ImageExportInterface
You can export the image to the Imagick class or save it.

/** @var Imagick $image */
$image = $exporter->export();
/** @var bool $status */ 
$status = $exporter->save('./out.png');

统计信息

  • 总下载量: 372
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 19
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 19
  • Watchers: 3
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-01-09