Open4

Photosohp UXP

cyocuncyocun

ExtendScriptがデバッグしづらすぎてつらいからUXPで書き直すついでにメモるるるるるスクラップ。

cyocuncyocun

ファイルの読み込み

    const fs = require("uxp").storage.localFileSystem;
    const pluginFolder = await fs.getPluginFolder();
    const theTemplate = await pluginFolder.getEntry("XXX.psd");

top level awaitはできないからasyncで囲む必要がある。
getEntryはpluginFolderを起点としている。あとこの通り

Invalid file path. Path must not contain `../` or `..\` and should not begin with `\` or `/` or `..`
    const pluginFolder = await fs.getPluginFolder();

この時いい感じに型は推測してくれてるけど、怪しいので typeof Folder つけとくと安心

    const pluginFolder:typeof Folder = await fs.getPluginFolder();

使っているのは @adobe-uxp-types

cyocuncyocun

executeAsModal

photoshopを操作する(表示が変わる)にはexecuteAsModalが必要

Error: Event: open may modify the state of Photoshop. Such events are only allowed from inside a modal scope

https://developer.adobe.com/photoshop/uxp/2022/ps_reference/media/executeasmodal/
https://kawano-shuji.com/justdiary/2021/11/02/photoshop-uxp-2022-executeasmodal/

これは何も考えずで囲っちゃえばいいと思う。配布するプラグインならケアした方がいいだろうけど。