X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftags%2Fsynfig_0_61_06%2Fsrc%2Fmodules%2Fmod_imagemagick%2Fmptr_imagemagick.cpp;fp=synfig-core%2Ftags%2Fsynfig_0_61_06%2Fsrc%2Fmodules%2Fmod_imagemagick%2Fmptr_imagemagick.cpp;h=0000000000000000000000000000000000000000;hb=6fa8f2f38d4b0b35f8539bf94e27ae27015c7689;hp=bd577acdeca1185433278c869cbb2de20770a3c2;hpb=47fce282611fbba1044921d22ca887f9b53ad91a;p=synfig.git diff --git a/synfig-core/tags/synfig_0_61_06/src/modules/mod_imagemagick/mptr_imagemagick.cpp b/synfig-core/tags/synfig_0_61_06/src/modules/mod_imagemagick/mptr_imagemagick.cpp deleted file mode 100644 index bd577ac..0000000 --- a/synfig-core/tags/synfig_0_61_06/src/modules/mod_imagemagick/mptr_imagemagick.cpp +++ /dev/null @@ -1,252 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file mptr_imagemagick.cpp -** \brief ppm Target Module -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** -** This package is free software; you can redistribute it and/or -** modify it under the terms of the GNU General Public License as -** published by the Free Software Foundation; either version 2 of -** the License, or (at your option) any later version. -** -** This package is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -** General Public License for more details. -** \endlegal -** -** === N O T E S =========================================================== -** -** ========================================================================= */ - -/* === H E A D E R S ======================================================= */ - -#ifdef USING_PCH -# include "pch.h" -#else -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include "mptr_imagemagick.h" -#include -#include -#include -#include -#include - -#endif - -/* === M A C R O S ========================================================= */ - -using namespace synfig; -using namespace std; -using namespace etl; - -/* === G L O B A L S ======================================================= */ - -SYNFIG_IMPORTER_INIT(imagemagick_mptr); -SYNFIG_IMPORTER_SET_NAME(imagemagick_mptr,"imagemagick"); -SYNFIG_IMPORTER_SET_EXT(imagemagick_mptr,"miff"); -SYNFIG_IMPORTER_SET_VERSION(imagemagick_mptr,"0.1"); -SYNFIG_IMPORTER_SET_CVS_ID(imagemagick_mptr,"$Id$"); - -/* === M E T H O D S ======================================================= */ - - -imagemagick_mptr::imagemagick_mptr(const char *f) -{ - - filename=f; - file=NULL; -} - -imagemagick_mptr::~imagemagick_mptr() -{ - if(file) - pclose(file); -} - -bool -imagemagick_mptr::get_frame(synfig::Surface &surface,Time time, synfig::ProgressCallback *cb) -{ -//#define HAS_LIBPNG 1 - -#if 1 - if(file) - pclose(file); - - string command; - - if(filename.empty()) - { - if(cb)cb->error(_("No file to load")); - else synfig::error(_("No file to load")); - return false; - } - string temp_file="/tmp/deleteme.png"; - - if(filename.find("psd")!=String::npos) - command=strprintf("convert \"%s\" -flatten \"png32:%s\"\n",filename.c_str(),temp_file.c_str()); - else - command=strprintf("convert \"%s\" \"png32:%s\"\n",filename.c_str(),temp_file.c_str()); - - synfig::info("command=%s",command.c_str()); - - if(system(command.c_str())!=0) - return false; - - Importer::Handle importer(Importer::open(temp_file)); - - DEBUGPOINT(); - - if(!importer) - { - if(cb)cb->error(_("Unable to open ")+temp_file); - else synfig::error(_("Unable to open ")+temp_file); - return false; - } - - DEBUGPOINT(); - - if(!importer->get_frame(surface,0,cb)) - { - if(cb)cb->error(_("Unable to get frame from ")+temp_file); - else synfig::error(_("Unable to get frame from ")+temp_file); - return false; - } - - if(!surface) - { - if(cb)cb->error(_("Bad surface from ")+temp_file); - else synfig::error(_("Bad surface from ")+temp_file); - return false; - } - - if(1) - { - // remove odd premultiplication - for(int i=0;ierror(_("No file to load")); - else synfig::error(_("No file to load")); - return false; - } - - command=strprintf("convert \"%s\" -flatten ppm:-\n",filename.c_str()); - - file=popen(command.c_str(),"r"); - - if(!file) - { - if(cb)cb->error(_("Unable to open pipe to imagemagick")); - else synfig::error(_("Unable to open pipe to imagemagick")); - return false; - } - int w,h; - float divisor; - char cookie[2]; - - while((cookie[0]=fgetc(file))!='P' && !feof(file)); - - if(feof(file)) - { - if(cb)cb->error(_("Reached end of stream without finding PPM header")); - else synfig::error(_("Reached end of stream without finding PPM header")); - return false; - } - - cookie[1]=fgetc(file); - - if(cookie[0]!='P' || cookie[1]!='6') - { - if(cb)cb->error(string(_("stream not in PPM format"))+" \""+cookie[0]+cookie[1]+'"'); - else synfig::error(string(_("stream not in PPM format"))+" \""+cookie[0]+cookie[1]+'"'); - return false; - } - - fgetc(file); - fscanf(file,"%d %d\n",&w,&h); - fscanf(file,"%f",&divisor); - fgetc(file); - - if(feof(file)) - { - if(cb)cb->error(_("Premature end of file (after header)")); - else synfig::error(_("Premature end of file (after header)")); - return false; - } - - int x; - int y; - frame.set_wh(w,h); - for(y=0;yerror(_("Premature end of file")); - else synfig::error(_("Premature end of file")); - return false; - } - float b=gamma().r_U8_to_F32((unsigned char)fgetc(file)); - float g=gamma().g_U8_to_F32((unsigned char)fgetc(file)); - float r=gamma().b_U8_to_F32((unsigned char)fgetc(file)); -/* - float b=(float)(unsigned char)fgetc(file)/divisor; - float g=(float)(unsigned char)fgetc(file)/divisor; - float r=(float)(unsigned char)fgetc(file)/divisor; -*/ - frame[y][x]=Color( - b, - g, - r, - 1.0 - ); - } - - surface=frame; - - return true; -#endif - - -}