1.1.3使用Photoshop API
了解如何使用Photoshop API和Firefly Services。
1.1.3.1先决条件
在继续此练习之前,您需要完成您的Adobe I/O项目的设置,还需要配置应用程序以与API交互,例如Postman或PostBuster。
1.1.3.2 Adobe I/O - access_token
在 Adobe IO - OAuth 集合中,选择名为 POST — 获取访问令牌 的请求,然后选择 发送。 响应应包含新的 accestoken。
1.1.3.3以编程方式与PSD文件交互
将citisignal-fibre.psd下载到桌面。
在Photoshop中打开 citisignal-fibre.psd。
在 层 窗格中,文件的设计者为每个层提供了唯一的名称。 您可以通过在Photoshop中打开PSD文件来查看图层信息,但您也可以通过编程方式来查看图层信息。
让我们将您的第一个API请求发送到Photoshop API。
Photoshop API - Hello World
接下来,让我们向Photoshop API问好,以测试是否正确设置了所有权限和访问权限。
在集合 Photoshop 中,打开请求 Photoshop Hello(测试身份验证) 的问题。选择 发送。
您应会收到响应 欢迎使用Photoshop API!。
接下来,为了以编程方式与PSD文件 citisignal-fibre.psd 交互,您需要将其上传到您的存储帐户。 您可以手动执行此操作,方法是使用Azure存储资源管理器将其拖放到容器中,但此时您应通过API执行此操作。
将PSD上传到Azure
在Postman中,打开请求 将PSD上传到Azure存储帐户。 在上一个练习中,您已在Postman中配置这些环境变量,现在将使用这些变量:
AZURE_STORAGE_URL
AZURE_STORAGE_CONTAINER
AZURE_STORAGE_SAS_READ
AZURE_STORAGE_SAS_WRITE
正如您在请求 将PSD上传到Azure Storage帐户 中看到的,URL已配置为使用这些变量。
在 主体 中,选择文件 citisignal-fiber.psd。
您的屏幕应如下所示。 选择 发送。
您应从Azure中获取此空响应,这意味着您的文件存储在您的Azure存储帐户的容器中。
如果使用Azure存储资源管理器查看文件,请确保刷新文件夹。
Photoshop API — 获取清单
接下来,您需要获取PSD文件的清单文件。
在Postman中,打开请求 Photoshop — 获取PSD清单。 转到 正文。
正文应如下所示:
{
"inputs": [
{
"storage": "external",
"href": "{{AZURE_STORAGE_URL}}/{{AZURE_STORAGE_CONTAINER}}/citisignal-fiber.psd{{AZURE_STORAGE_SAS_READ}}"
}
],
"options": {
"thumbnails": {
"type": "image/jpeg"
}
}
}
选择 发送。
在响应中,您现在会看到一个链接。 由于Photoshop中的操作有时需要一些时间才能完成,因此Photoshop会提供状态文件作为对大多数传入请求的响应。 要了解您的请求发生了什么情况,您需要读取状态文件。
要读取状态文件,请打开请求 Photoshop — 获取PS状态。 您可以看到此请求正在使用变量作为URL,该URL是由您发送的上一个请求 Photoshop — 获取PSD清单 设置的变量。 变量在每个请求的 脚本 中设置。 选择 发送。
您的屏幕应如下所示。 目前,状态设置为 挂起,这意味着该进程尚未完成。
在 Photoshop — 获取PS状态 上再选择发送几次,直到状态更改为 succeeded。 这可能需要几分钟的时间。
当响应可用时,您可以看到json文件包含有关PSD文件所有层的信息。 这是有用的信息,因为可以识别层名称或层ID等。
例如,搜索文本2048x2048-cta
。 屏幕应如下所示:
Photoshop API - SmartObject替换
接下来,您需要使用上一个练习中使用Firefly生成的图像来更改citisignal-fibre.psd文件的背景。
在Postman中,打开请求 Photoshop - SmartObject Replace,然后转到 Body。
屏幕应如下所示:
- 首先,指定了输入文件:
citisignal-fiber.psd
- 其次,指定要更改的图层,并使用新的背景文件
- 第三,指定了输出文件:
citisignal-fiber-replacedbg.psd
{
"inputs": [
{
"storage": "azure",
"href": "{{AZURE_STORAGE_URL}}/{{AZURE_STORAGE_CONTAINER}}/citisignal-fiber.psd{{AZURE_STORAGE_SAS_READ}}"
}
],
"options": {
"layers": [
{
"name": "2048x2048-image",
"input": {
"href": "{{FIREFLY_COMPLETED_ASSET_URL}}",
"storage": "external"
}
}
]
},
"outputs": [
{
"storage": "azure",
"href": "{{AZURE_STORAGE_URL}}/{{AZURE_STORAGE_CONTAINER}}/citisignal-fiber-replacedbg.psd{{AZURE_STORAGE_SAS_WRITE}}",
"type": "vnd.adobe.photoshop",
"overwrite": true
}
]
}
输出文件的名称不同,因为您不想覆盖原始输入文件。
选择 发送。
与之前一样,响应包含一个指向跟踪进度的状态文件的链接。
要读取状态文件,请打开请求 Photoshop — 获取PS状态,然后选择 发送。 如果状态未立即设置为 succeeded,请等待几秒钟,然后再次选择 发送。
选择用于下载输出文件的URL。
将文件下载到计算机后,打开 citisignal-fibre-replacedbg.psd。 您应该看到背景图像已更改为类似于下面的图像:
您还可以使用Azure存储资源管理器在容器中查看此文件。
Photoshop API — 更改文本
接下来,您需要使用API更改call to action的文本。
在Postman中,打开请求 Photoshop — 更改文本,然后转到 正文。
屏幕应如下所示:
- 首先,指定了一个输入文件:
citisignal-fiber-replacedbg.psd
,它是您更改背景图像时在上一步中生成的文件 - 其次,指定要更改的图层,文本将更改为
- 第三,指定了输出文件:
citisignal-fiber-changed-text.psd
{
"inputs": [
{
"storage": "external",
"href": "{{AZURE_STORAGE_URL}}/{{AZURE_STORAGE_CONTAINER}}/citisignal-fiber-replacedbg.psd{{AZURE_STORAGE_SAS_READ}}"
}
],
"options": {
"layers": [
{
"name": "2048x2048-cta",
"text": {
"content": "Get Fiber now!"
}
}
]
},
"outputs": [
{
"storage": "azure",
"href": "{{AZURE_STORAGE_URL}}/{{AZURE_STORAGE_CONTAINER}}/citisignal-fiber-changed-text.psd{{AZURE_STORAGE_SAS_WRITE}}",
"type": "vnd.adobe.photoshop",
"overwrite": true
}
]
}
输出文件的名称不同,因为您不想覆盖原始输入文件。
选择 发送。
与之前一样,响应包含一个指向跟踪进度的状态文件的链接。
要读取状态文件,请打开请求 Photoshop — 获取PS状态,然后选择 发送。 如果状态未立即设置为 succeeded,请等待几秒钟,然后再次选择 发送。
选择用于下载输出文件的URL。
将文件下载到计算机后,打开 citisignal-fibre-changed-text.psd。 您应该看到call to action的占位符已被文本 立即获取Fiber! 替换。
您还可以使用Azure存储资源管理器在容器中查看此文件。