C# で Photoshop を操作!

慧: こんにちは! C# Advent Calendar 2014 の24日目の記事だよ。
今日は思い付きだけど C# で Photoshop を操作するよ! アドベントカレンダー登録したときは、#キャラサミ のキャラクター一覧 の作り方にしようかなと思ってたんだけどね。
Photoshop オートメーション
Photoshop は「OLE オートメーション」というのに対応してて、C# でなくても、いろんな言語から操作できるようになってるんだよね。今回はこれをちょっと使ってみるよ。
Photoshop Object Library を参照
Visual Studio で C# のプロジェクトを作成して、「参照の追加」で「COM」の「Adobe Photoshop (version) Object Library」を選択。「(version)」部分はインストールしている Photoshop によって違うよ。
アクションの実行をコードで記述
① Photoshop の起動、② ファイルを開く、③ アクションの実行、④ ファイルへ保存 という流れを C# のコードで記述するね。Photoshop のアクション は、操作を記録して必要な時に再利用できるマクロ機能のこと。
コードはこんな感じ。ファイルは絶対パスで指定しよう。
using Photoshop; | |
namespace ConsoleApplication1 | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
var app = new Application(); // Photoshop 起動 | |
var doc = app.Open(@"C:\Users\kureikei\Pictures\xmascard2014.jpg"); // ファイルを開く | |
app.DoAction("セピアトーン (レイヤー)", "初期設定のアクション"); // アクションの実行 | |
var options = new JPEGSaveOptions() { Quality = 10 }; // JPEG 保存オプション (品質 0-12; default: 3) | |
doc.SaveAs(@"C:\Users\kureikei\Pictures\xmascard2014_sepia.jpg", options, true, PsExtensionType.psLowercase); // ファイルへ保存 | |
doc.Close(PsSaveOptions.psDoNotSaveChanges); // ファイルを閉じる | |
} | |
} | |
} |
コード中の DoAction メソッドで、アクションを実行しているよ。指定する値は、Photoshop のここの部分。
結果!
というわけで、メリークリスマス!
元の画像は、[Photoshop] 切手風のデザインを作る/プロ生ちゃんクリスマスカード の画像だよ。
参考になるサイト
今回の内容は、ほとんど Automating Photoshop With C# // Josh Wright を参考にしているの。
他にどんなことができるか調べるのは結構たいへんそう……。Adobe Photoshop Developer Center の Photoshop CC 2014 Scripting が、公式の最新情報かな。言語を英語にしないと情報が古いから気を付けて! コードの例は、AppleScript・JavaScript・VBScript が用意されているよ。
最新記事 by kei (全て見る)
- 自作PC・MOD PCコンテスト作品「しろたんPC」 - 2021/01/22
- 自作PC・MOD PCコンテスト作品「X68030 PROnama-68K」 - 2021/01/22
- 自作PC・MOD PCコンテスト作品「モンスターすぺっくマシン Ver. 2.03(ポチ子仕様)」 - 2021/01/12