Pregunta

Cuando abro una ventana de comandos en Windows y uso el comando de conversión de imagemagick:

convertir /somedir/Garden.jpg /somedir/Garden.png

Funciona como se esperaba.

Lo que intento hacer es ejecutar el mismo comando que el anterior usando C #.

Intenté usar System.Diagnostics.Process, sin embargo, no se creó foo.png.

Estoy usando este código:

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

No se produce ninguna excepción, pero tampoco se escribe .png.

¿Fue útil?

Solución

Supongo que TEST_FILE_DIR contiene un espacio, por lo que debe citarlo.

Prueba esto:

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

Es posible que también desee dar el nombre del archivo, incluida la extensión, por ejemplo,

FileName = @"C:\xampp\ImageMagick-6.5.4-Q16\convert.exe"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top