###前提・実現したいこと
psdをレイヤー別にpngで保存する方法に書いてある
convert hoge.psd -set dispose Background -coalesce -delete 0 fuga_%04d.png
というImageMagickのコマンドと同じ結果をMagick.netを使って実現したい。
どなたか参考になりそうなサイト、もしくは方法をご存知の方がいれば教えてください。
###該当のソースコード
C#
1using ImageMagick; 2 3namespace psd 4{ 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 ImageMagick.MagickReadSettings settings = 10 new ImageMagick.MagickReadSettings(); 11 12 settings.BackgroundColor = new MagickColor(); 13 14 MagickImageCollection imgs = 15 new ImageMagick.MagickImageCollection("読み込みたいPSDファイル.psd", settings); 16 17 imgs.Coalesce(); 18 imgs.RemoveAt(0); 19 20 imgs.Write("変換したPNGファイル.png"); 21 22 imgs.Dispose(); 23 } 24 } 25}
ImageMagickのコマンドの「Background」と「delete 0」をMagick.netでどのように書けばよいのか分かりません。
このプログラムは「Magick.NETを使って、.NETがサポートしていない形式の画像を読み込む」というサイトのPDFを画像にするプログラムを参考に作りました。
実行すると、PSDファイルがレイヤーごとにPNGに変換されます。
画像の大きさを統一する目的で「Coalesce」を入れてみましたが、これによってレイヤーがどんどん合体しながらPNGになるので注意が必要です。
「Coalesce」なしでもPSDをPNGにすることができます。
背景を透明にする目的で「settings.BackgroundColor」を入れてみました。
2016/12/30追記
「delete 0」と同じく画像の先頭を削除する方法は分かりました。引き続き背景を透明にする方法を調査中です。
他の方法として、imgs[0]と同じ大きさの透明の画像を作ってそこにimgsからとったimageをくっつけて画像にするということも試しています。
canvasのサイズだけを変更するという方法も調査中です。
###試したこと
現在も継続して解決方法を調べています。
###補足情報(言語/FW/ツール等のバージョンなど)
C#のプログラムを動かすのに必要なもの「Magick.net」
参考
.NET 用パッケージマネージャー NuGet のインストールと使い方
Magick.NETを使って、.NETがサポートしていない形式の画像を読み込む
Ruby
1require"mini_magick" 2 3MiniMagick::Tool::Convert.new do |convert| 4 convert << "読み込みたいPSDファイル.psd" 5 convert.set("dispose") 6 convert << "Background" 7 convert.coalesce 8 convert.delete(0) 9 convert << "変換したPNGファイル.png" 10end
RubyとMiniMagickで上のコマンドを書くとこんな感じになります。結局、ocraでexe化できなかったのでC#で同じことをやろうとしています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。