Domanda

Quando apro una finestra di comando in Windows e utilizzo il comando di conversione imagemagick:

converti /somedir/Garden.jpg /somedir/Garden.png

Funziona come previsto.

Quello che sto cercando di fare è eseguire lo stesso comando sopra usando C #.

Ho provato a utilizzare System.Diagnostics.Process, tuttavia, non viene creato nessun foo.png.

Sto usando questo codice:

      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();

Non viene generata alcuna eccezione, ma non viene nemmeno scritto .png.

È stato utile?

Soluzione

La mia ipotesi è che TEST_FILE_DIR contenga uno spazio, quindi devi citarlo.

Prova questo:

Arguments = string.Format("\"{0}Garden.jpg\" \"{1}Garden.png\"",
                          TEST_FILE_DIR,
                          TEST_FILE_DIR)

Potresti anche voler dare il nome del file inclusa l'estensione, ad esempio

FileName = @"C:\xampp\ImageMagick-6.5.4-Q16\convert.exe"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top