質問
Windowsでコマンドウィンドウを開き、imagemagick convertコマンドを使用する場合:
convert /somedir/Garden.jpg /somedir/Garden.png
期待どおりに動作します。
私がやろうとしているのは、C#を使用して上記と同じコマンドを実行することです。
System.Diagnostics.Processを使用しようとしましたが、foo.pngは作成されません。
このコードを使用しています:
var proc = new Process
{
StartInfo =
{
Arguments = string.Format("{0}Garden.jpg {1}Garden.png",
TEST_FILE_DIR,
TEST_FILE_DIR),
FileName = @"C:\xampp\ImageMagick-6.5.4-Q16\convert",
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = false,
RedirectStandardError = false
}
};
proc.Start();
例外はスローされませんが、.pngも書き込まれません。
解決
推測では、 TEST_FILE_DIR
にスペースが含まれているため、引用符で囲む必要があります。
これを試してください:
Arguments = string.Format("\"{0}Garden.jpg\" \"{1}Garden.png\"",
TEST_FILE_DIR,
TEST_FILE_DIR)
たとえば、拡張子を含むファイル名を指定することもできます。例:
FileName = @"C:\xampp\ImageMagick-6.5.4-Q16\convert.exe"
所属していません StackOverflow