« ピントとボケ | トップページ | セルフコントロール »

2012年5月 1日 (火)外からイジル

おはようございます。本日の当番、モーションデザイナーのR.Iです。

前回は寒い寒いと言っていましたが、最近は暖かい日が増えてきましたね。

さて、今回はPythonを使って外部制御をしてみようと思います。


まず、以下のフローで目的のファイル生成を行っていたとします。

1.複数のファイルを指定したファイル名に変更する

2.名前を変更したファイル名を読み込み、別のファイル形式に変換する


上記「1」の作業はバッチファイルで行っていましたが、
「2」の作業に関してはPhotoshopを使って行っていました。
「1」は自動、「2」は手動という状態ですね。
「2」で行っている作業内容はと言うと

ファイルを開く。

ファイルを別の形式で保存する。

※上記の作業をファイルの数だけ行う。



単純な作業ですが、ツールの操作は人がやるため、
ファイル数が多くなるとミスが発生するかもしれません。

人が行う内容をスクリプトに置き換える事はできないかな~と
思っていたら、いい方法がありました。
それが今回のPhotoshopPython外部制御というわけです。


スクリプトに組み込むことで、データの書き出しなどを
自動化することができ、作業効率をあげることができます。

「1」のバッチファイルでスクリプトを実行することができるので、
フローを簡略化することもできます。


説明用に以下のスクリプトを作成してみました。
スクリプトの内容はJPGファイルを読み込んで
指定したオプションを設定し、PSDファイルで保存します。

# -*- coding: utf-8 -*-

from win32com.client import Dispatch as disp

PS_App = disp("Photoshop.Application")          #Photoshopを起動する
Psd_Op = disp("Photoshop.PhotoshopSaveOptions") #Psdファイルオプションを呼び出す



def fPS_File_Open(FilePath):
    """
    指定されたファイルをPhotoshopで開き、アクティブ状態にする
    引数:開くファイルのパスとファイル名
    戻り値:Document
    """


    Open_File = PS_App.Application.Open(FilePath)
    Doc = PS_App.Application.ActiveDocument
    return Doc



def fPS_SavePsd_Option():
    """
    Psdファイルを書き出すためのオプションを設定する
    引数:なし
    戻り値:PhotoshopSaveOptions
    """


    Psd_Op.AlphaChannels = True
    Psd_Op.Layers = True
    Psd_Op.Annotations = True
    Psd_Op.SpotColors = True
    Psd_Op.EmbedColorProfile = True
    return Psd_Op



def fPS_File_SaveAs(Doc, Option, FilePath):
    """
    アクティブ状態のファイルを別名保存する
    引数:Document, PhotoshopSaveOptions, 書き出し先のパスとファイル名
    戻り値:なし
    """


    Doc.SaveAs(FilePath, Option, True, 2)



def main():
    fPS_File = fPS_File_Open(r"C:\blog\Jpg\Sample.jpg")
    fOption = fPS_SavePsd_Option()
    fPS_File_SaveAs(fPS_File, fOption, r"C:\blog\Export\Sample_PSD.psd")



if __name__ == '__main__':
    main()


Photoshopを起動するのは以下の部分

from win32com.client import Dispatch as disp
PS_App = disp("Photoshop.Application")


上記以降「PS_App.メソッド」で指定することで色々なことができます。
メソッドの内容は「OLE/COM Object Viewer」や「Python Object Browser」などを
使って調べました。ここが一番時間かかりましたけどね。
気になる方はネットなどで調べてみて下さい。


今回の内容でツールと連携しながら、作業の効率化ができれば、
面白そうだと思いますので、次回、またネタがあれば書きたいと思います。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2012/05/post-90a2.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« ピントとボケ | トップページ | セルフコントロール »

モーションデザイナー」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 外からイジル:

« ピントとボケ | トップページ | セルフコントロール »