複数のレイヤーがあり、png ファイル (レイヤーごとに 1 つ) を吐き出す PSD フォトショップ イメージを読み込むための Python プログラムを作成する必要があります。Pythonでそれを行うことはできますか?PIL を試してみましたが、レイヤーにアクセスする方法がないようです。ヘルプ。PS。私自身の PSD ローダーと png ライターの作成は、遅すぎることがわかりました。
14113 次
5 に答える
5
Gimp-Python を使用しますか? http://www.gimp.org/docs/python/index.html
そのように Photoshop は必要なく、Gimp と Python を実行するすべてのプラットフォームで動作するはずです。これは大きな依存関係ですが、無料です。
PILでそれを行うには:
from PIL import Image, ImageSequence
im = Image.open("spam.psd")
layers = [frame.copy() for frame in ImageSequence.Iterator(im)]
編集: OK、解決策を見つけました: https://github.com/jerem/psdparse
これにより、Python以外のものを使用せずに、Pythonを使用してpsdファイルからレイヤーを抽出できます。
于 2011-07-20T09:23:28.823 に答える
2
Python で Photoshop にアクセスするには、win32com を使用できます。あなたの仕事のための可能な擬似コード:
- PSD ファイルを読み込む
- すべてのレイヤーを収集し、すべてのレイヤーを VISIBLE=OFF にする
- レイヤーを次々と回転させ、VISIBLE=ON とマークして PNG にエクスポートします。
win32com.client をインポート pApp = win32com.client.Dispatch('Photoshop.Application') def makeAllLayerInvisible(lyrs): for ly in lyrs: ly.Visible = False def makeEachLayerVisibleAndExportToPNG(lyrs): for ly in lyrs: ly.Visible = True options = win32com.client.Dispatch('Photoshop.PNGSaveOptions') options.Interlaced = False tf = 'PNG ファイル名とパス' doc.SaveAs(SaveIn=tf,Options=オプション) ly.Visible = False #pApp.Open(PSDファイル) doc = pApp.ActiveDocument makeAllLayerInvisible(doc.Layers) makeEachLayerVisibleAndExportToPNG(doc.Layers)
于 2011-09-12T18:42:25.993 に答える
1
PSD ファイルを読み取るためのhttps://code.google.com/p/pypsd/およびhttps://github.com/kmike/psd-tools Python パッケージもあります。
于 2012-11-03T18:56:28.203 に答える