質問

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"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top