psd文件解析接口
前言
这是一个psd文件解析项目,支持调用adobe官方api操作psd文件或者调用本地photoshop软件操作psd文件。
操作演示
接口结构
核心功能
原理实现
接口参数
基础功能 | 对应字段 | 调用本地PS | 调用adobe-API | 备注 |
---|---|---|---|---|
要修改的psd文件:a.psd | file_name | ✔️ | ✔️ | |
文字图层内容 | new_contents | ✔️ | ✔️ | |
文字图层字体修改 | new_fonts | ✔️ | ⛔(官方API 限制,仅支持部分adobe的字体) | 2022年10月最后一次看, 已经完全支持自定义字体,当前没写进业务中 |
文字图层大小修改 | font_sizes | ✔️ | ✔️ | |
智能对象图层文字内容修改 | new_contents | ✔️ | ⚠(官方API 限制,通过多次调用实现) | 需要等待官方支持外链智能对象功能上线才能解决 |
智能对象图层文字字体修改 | new_fonts | ✔️ | ⛔(官方API 限制,仅支持部分adobe的字体) | 2022年10月最后一次看, 已经完全支持自定义字体,当前没写进业务中 |
智能对象文字超边界修复 | font_sizes | ✔️ | ✔️ | |
智能对象图层图片替换 | new_contents | ✔️ | ✔️ | |
自定义尺寸:长、宽 | width 、height | ✔️ | ✔️ | |
自定义分辨率(DPI) | dpi | ✔️ | ✔️ | |
支持多种格式输出:jpg 、png 、pdf 、tiff | output_type | ✔️ | ✔️ | |
输出的图片模式,rgb 、cmyk | image_mode | ✔️ | ||
指定颜色配置.icc 文件 | ✔️ | config.adobe_icc_file_cmyk 字段 | ||
处理引擎:adboe-api 或者ps-api | use_api | ✔️ | ✔️ | linux下仅支持adobe |
- 接口已实现接口所有需求的所有功能
adobe-API
对智能对象修改有一定局限性,部分需求通过调用多次实现,官方明确表示后续接口会增加该方面功能。adobe-API
需要用国外服务器部署,国内延迟非常大- 官方支持的字体:
https://github.com/AdobeDocs/photoshop-api-docs/blob/master/SupportedFonts.md
返回格式
返回字段 | 类型 | 备注 |
---|---|---|
success | boolean | 请求是否成功 |
msg | string | 提示信息 |
code | number | 服务器状态码 |
res | object | 合成结果最终链接(图片保存到客户服务器) |
// 数据格式
{
"success": true,
"msg": "请求成功",
"res": {
"url": [
"https://test-bucket-psd-tools.s3.amazonaws.com/output/888.psd_1665456429.jpg"
],
"请求耗时": 4.821,
"修改图层": 5
},
"err": null
}
项目架构
项目目录
|-- data # 关键数据存放目录
| |-- adobe # 存放adobe账号后台对应的项目文件 config.json、private.key, 一个文件夹对应一个项目名
| |-- bucket # 存储桶相关key的文件,比如aws-s3的文件就有 new_user_credentials.csv、 rootkey.csv
| |-- psd # psd 文件预处理后的存放文件夹
| `-- fonts # psd文件所有第三方字体(需要手动另外安装到系统),接口会定期上传这里的字体到存储桶
|-- docs # 一些以往的说明文件
|-- docker
| |-- web/ # docker
| | |-- Dockerfile #
| | `-- requirements.txt # docker 部署专用的requirements.txt
| |-- redis/ #
| | |-- data/ # redis容器挂载后的data目录
| | `-- redis.conf # docker挂载后映射的redis配置文件
| |-- build.sh # 部署脚本
| |-- check.sh # 环境检查脚本
| `-- docker-compose.yml # compose配置文件
|-- logs # 日志文件
|-- src # 源码目录
| |-- modules # module层,也可以当作是server层
| |-- tools # 接口层面的工具函数
| |-- utils # 关键的一些工具函数层
| |-- storages # 存储桶层
| |-- routers # 路由层
| | `-- v1 # 接口
| `-- static # 所以文件都会上传到本文件夹
| |-- temp # 临时文件夹,首次上传的文件都会存放到这里,处理后会自动删除,接口定期清理
| `-- upload # 临时文件夹
|-- config.py # 次级的配置文件,最终以config.ini 为准
`-- main.py # 接口启动文件 启动命令:python3 main.py (工作目录确保为src目录)
项目购买链接
- 这是一个商业项目,欢迎加购(目前团队正在开发AI模型换装,可以根据平面产品图片生成不同角度,不同模特的试装展示图,真是还原度目前93%,欢迎咨询)
- 本项目购买地址: