X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_imagemagick%2Fmptr_imagemagick.cpp;h=ebc35693354574818c401918e60f7abd95028491;hb=756c0d29ac1742f231e6615f9a577e574e35a4af;hp=4bcf1f8695b021f298fad127c58ee5784ce85160;hpb=63e709f66d50c124cc0ece2325f4773ac4ae7b20;p=synfig.git diff --git a/synfig-core/trunk/src/modules/mod_imagemagick/mptr_imagemagick.cpp b/synfig-core/trunk/src/modules/mod_imagemagick/mptr_imagemagick.cpp index 4bcf1f8..ebc3569 100644 --- a/synfig-core/trunk/src/modules/mod_imagemagick/mptr_imagemagick.cpp +++ b/synfig-core/trunk/src/modules/mod_imagemagick/mptr_imagemagick.cpp @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -63,7 +64,7 @@ using namespace etl; #if defined(HAVE_FORK) && defined(HAVE_PIPE) && defined(HAVE_WAITPID) #define UNIX_PIPE_TO_PROCESSES -#elif defined(HAVE__SPAWNLP) && defined(HAVE__PIPE) && defined(HAVE_CWAIT) +#else #define WIN32_PIPE_TO_PROCESSES #endif @@ -104,17 +105,26 @@ imagemagick_mptr::get_frame(synfig::Surface &surface,Time /*time*/, synfig::Prog return false; } string temp_file="/tmp/deleteme.png"; - string output="png32:"+temp_file; #if defined(WIN32_PIPE_TO_PROCESSES) + if(file) + pclose(file); + + string command; + if(filename.find("psd")!=String::npos) - _spawnlp(_P_WAIT, "convert", "convert", filename.c_str(), "-flatten", output.c_str(), (const char *)NULL); + command=strprintf("convert \"%s\" -flatten \"png32:%s\"\n",filename.c_str(),temp_file.c_str()); else - _spawnlp(_P_WAIT, "convert", "convert", filename.c_str(), output.c_str(), (const char *)NULL); + command=strprintf("convert \"%s\" \"png32:%s\"\n",filename.c_str(),temp_file.c_str()); + + if(system(command.c_str())!=0) + return false; #elif defined(UNIX_PIPE_TO_PROCESSES) + string output="png32:"+temp_file; + pid_t pid = fork(); if (pid == -1) {