Estoy utilizando la herramienta de conversión de ImageMagick para convertir imágenes desde mi programa Java que se ejecuta en Mac OS X. Estoy usando el siguiente código, que he adaptado de here.ImageMagick convertir estado de salida 133
public static void convertToJPG(String originalFile, String newFile) throws Exception {
executeCommand("/usr/local/ImageMagick-6.6.7/bin/convert", originalFile, newFile);
}
private static void executeCommand(String... command) throws Exception {
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process p = pb.start();
int exitStatus = p.waitFor();
System.out.println(exitStatus);
if(exitStatus != 0)
throw new Exception("Error converting image.");
}
Sin embargo, cuando hago esto, me sale un estado de salida y el mensaje de error a continuación. Supongo que esto tiene algo que ver con los permisos, ya que cuando ejecuto el mismo comando desde la terminal, funciona bien.
mensaje de error:
dyld: Library not loaded: /ImageMagick-6.6.7/lib/libMagickCore.4.dylib
Referenced from: /usr/local/ImageMagick-6.6.7/bin/convert
Reason: image not found
Editar: Ok, por lo que resulta que estaba recibiendo el mensaje de error anterior, debido a que Java no ser capaz de ver la variable DYLD_LIBRARY_PATH
medio ambiente. Así que reinicié Eclipse y todo funcionó.
Guau, eso tiene mucho sentido, no puedo creer que no haya pensado en eso. ¡Gracias! Voy a intentar eso hoy. – DanielGibbs
Ah-ha! ¡Ahora tengo un mensaje de error! Actualización arriba. – DanielGibbs