Photoshop

[Photoshop API]他形式での出力とサイズ変更を行う

[Photoshop API]他形式での出力とサイズ変更を行う

※2020年1月現在、Photoshop APIはベータ版です。この記事の情報は正式版と異なる可能性がありますので、その点はご注意ください。

先日書いた下記記事の通り、現在ベータ版のPhotoshop APIで試行錯誤しています。

公式ドキュメントを参考に色々試しているのですが、まず認証で躓く・・・。

呼び出し方が悪いのか、「grant_type=password」の認証にまだ対応していないのか、エンドポイントが間違っているのか、理由は分かりませんが、アクセストークンの取得(リフレッシュトークンの交換も含む)が上手くいきません。

そもそもAdobe I/O ConsoleでPhotoshop APIの管理ができないのですが、まだプライベートベータ版なので仕方ないのかもしれません。

ただ、プレリリース用のトークン取得サイトでは問題なく取得できるので、このサイトで取得したアクセストークンを使って、できる範囲で検証を進めることにしました。

APIによる他形式での出力とサイズ変更

公式ドキュメントによると、“/renditionsCreate”エンドポイントによって、PSDファイルから新しいイメージレンディションやPSDファイルを作成できるようです。

私的には「レンディションってなに?」というAdobe製品の知識レベルなのですが、総務省の資料によると、

マルチレンディション(マルチプル-レンディション)とは、同一内容で表示形式が異なる複数のコンテンツを保持しており、必要に応じた形式で表示を可能とすること。

https://www.soumu.go.jp/main_content/000499710.pdf より

とあったので、ここで説明されているレンディションも『元ファイルから別の形式で出力したファイル』のことかな?と、勝手に認識しております。

話を戻すと、要するに「/renditionsCreate」エンドポイントを叩けばファイル形式の変換が行えるわけですね!

さっそく試してみました。

エンドポイントURL
https://image.adobe.io/pie/psdService/renditionCreate
ヘッダー
Content-Type: application/json
x-api-key: (クライアントID)
Authorization: Bearer (アクセストークン)
データ

入力ファイルとしてCCアセットのファイル直下にある「Example.psd」ファイルを指定し、出力ファイルとしてJPEGファイルとPNGファイルを指定しています。

また、「width」で出力する画像の幅をピクセル単位で指定することができます。
(高さは自動で算出されるため、指定する必要はありません。)

{
  "inputs":[
    {
      "href":"files/Example.psd",
      "storage":"adobe"
    }
  ],
  "outputs":[
    {
      "href":"files/Example.jpeg",
      "width": 512,
      "storage":"adobe",
      "type":"image/jpeg"
    },
    {
      "href":"files/Example.png",
      "storage":"adobe",
      "type":"image/png"
    }
  ]
}

詳しいパラメーターについては下記リファレンスをご参照ください。

結果

上記リクエストを実行すると、非同期でジョブが開始され、ジョブステータスと出力したファイル情報をポーリングするhrefが返されます。

{
  "_links": {
    "self": {
      "href": "https://image.adobe.io/pie/psdService/status/********-****-****-****-************"
    }
  }
}

複数ファイルの変換

「/renditionCreate」エンドポイントでは、ファイルではなくフォルダを指定することもできます。
その場合、複数ファイルをまとめて変換することができます。

エンドポイントURL
https://image.adobe.io/pie/psdService/renditionCreate
ヘッダー
Content-Type: application/json
x-api-key: (クライアントID)
Authorization: Bearer (アクセストークン)
データ

入力元としてCCアセットのファイル直下にある「input_files」フォルダを指定し、出力先として「outputs」フォルダを指定しています。

このとき、「$FileName」や「$FileNum」といったトークンを使うことで、元のファイル名やカウンターを出力先ファイル名にすることができます(storageに「adobe」を指定した場合のみ)。

{
  "inputs":[
    {
      "href":"files/input_files",
      "storage":"adobe"
    }
  ],
  "outputs":[
    {
      "href":"files/outputs/$FileName_$FileNum.jpeg",
      "storage":"adobe",
      "type":"image/jpeg"
    }
  ]
}

詳しいパラメーターについては下記リファレンスをご参照ください。

結果

返ってくる結果はファイル単体を指定した場合と同様です。

{
  "_links": {
    "self": {
      "href": "https://image.adobe.io/pie/psdService/status/********-****-****-****-************"
    }
  }
}

今回はPhotoshop APIを使って、PSDファイルからのJPEG・PNG形式での出力とサイズ変更を試してみました。
特にフォルダ指定で一括出力できるのは便利ですね!
JPEG出力時には品質指定もできるので、使用する機会は頻繁にありそうです。

関連記事

  1. Photoshop

    ベータ版のPhotoshop APIを試してみました。

    ※2020年1月現在、Photoshop APIはベータ版です。この記…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP