pixelfactory / psd-php
用于读取psd文件的库
1.0.0
2023-01-09 17:23 UTC
Requires
- ext-imagick: *
This package is not auto-updated.
Last update: 2024-10-02 00:05:49 UTC
README
PSD-PHP
用于读取psd文件的库
安装
composer require pixelfactory/psd-php
使用
通过传递文件路径创建'Psd'类的实例。
require_once '../vendor/autoload.php'; $psd = new \Psd\Psd('./image.psd');
然后你可以使用两种方式使用库,'简单'和'专业'
简单 - 方式适合那些不熟悉psd文件结构,只想获取必要信息的人
专业 - 方式可以由更有经验的开发者使用,以获取文件特定部分的访问权限
简单
获取文件大小
$psd = new \Psd\Psd('./image.psd'); $psdSimpleMethods = $psd->getShortcuts(); echo $psdSimpleMethods->getWidth(); // Print file width echo $psdSimpleMethods->getHeight(); // Print file height
保存图像
$psd = new \Psd\Psd('./image.psd'); $psdSimpleMethods = $psd->getShortcuts(); var_dump($psdSimpleMethods->savePreview('./out.png')); // Print 'true' if file be saved
处理图层树
// TODO
[图层树] 从目录中移动
// TODO
[图层树] 获取图层信息
// TODO
[图层树] 保存图层图像
// TODO
专业
psd类与psd文件具有相同的结构。
1 - '颜色模式数据'没有方法,因为它被跳过并且库不对其进行处理。这不会影响大多数图像的工作,因为它们有"rgb"或"cmyk"颜色模式。此部分仅用于"索引"或"双色调"颜色模式。
头部数据
您可以调用'getHeader'方法来获取实现了HeaderInterface的类,它包含所有图像头部部分字段的方法。
示例
echo $psd->getHeader()->getMode(); // Return file mode (int) echo $psd->getHeader()->modeName(); // Return file mode name echo $psd->getHeader()->getChannels(); // Return file count channels
图像资源
图像资源部分存储附加信息。例如,指南等。
库正在处理资源
- 指南(1032)
- 图层组合(1065)
- 分辨率信息(1005)
您可以在文档中找到您可以找到的资源完整列表。
要找到必要的资源,您需要调用getResources方法(此方法返回扩展自ResourcesInterface的类)。
然后,您可以使用资源名称或资源ID进行搜索。
示例。获取指南
/** @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' }
图层和蒙版信息
// TODO
图像数据
此部分存储图像。您可以使用方法getExporter获取用于导出图像的类。
目前仅提供png类用于导出图像
/* @var Psd\Image\ImageExport\Exports\Png $exporter */ $exporter = $psd->getImage()->getExporter(\Psd\Image\ImageExport\ImageExport::EXPORT_FORMAT_PNG);
所有导出类实现了接口:ImageExportInterface
您可以将图像导出到Imagick类或保存它。
/** @var Imagick $image */ $image = $exporter->export(); /** @var bool $status */ $status = $exporter->save('./out.png');