>From 0eea8c36d0518005ed069e1fec538141fb2ce58e Mon Sep 17 00:00:00 2001 From: Norbert Nemec Date: Fri, 3 Dec 2010 15:14:53 +0100 Subject: [PATCH] Fix eps_to_png to read bbox from file --- src/src/Plugins/Ghostscript/gs_utilities.cpp | 30 +++++++++++++++---------- 1 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/src/Plugins/Ghostscript/gs_utilities.cpp b/src/src/Plugins/Ghostscript/gs_utilities.cpp index 859decc..7459b7d 100644 --- a/src/src/Plugins/Ghostscript/gs_utilities.cpp +++ b/src/src/Plugins/Ghostscript/gs_utilities.cpp @@ -25,17 +25,25 @@ gs_supports (url image) { void gs_image_size (url image, int& w_pt, int& h_pt) { -#if defined (__MINGW__) || defined (__MINGW32__) - string cmd= "\""; - cmd << get_env ("TEXMACS_PATH") << string ("\\bin\\gswin32c\" "); -#else - string cmd= "gs "; -#endif - cmd << "-dQUIET -dNOPAUSE -dBATCH -dSAFER -dEPSCrop -sDEVICE=bbox "; + string cmd; + cmd= "grep -m 1 '^%%BoundingBox: ' "; cmd << sys_concretize (image); string buf= eval_system (cmd); int pos= 0; int ok= read (buf, pos, "%%BoundingBox: "); + if (!ok) { +#if defined (__MINGW__) || defined (__MINGW32__) + cmd= "\""; + cmd << get_env ("TEXMACS_PATH") << string ("\\bin\\gswin32c\" "); +#else + cmd= "gs "; +#endif + cmd << "-dQUIET -dNOPAUSE -dBATCH -dSAFER -dEPSCrop -sDEVICE=bbox "; + cmd << sys_concretize (image); + string buf= eval_system (cmd); + int pos= 0; + int ok= read (buf, pos, "%%BoundingBox: "); + } if (ok) { int x1, y1, x2, y2; skip_spaces (buf, pos); @@ -69,12 +77,10 @@ gs_to_png (url image, url png, int w, int h) { cmd << "-sDEVICE=png16m -dGraphicsAlphaBits=4 -dEPSCrop "; cmd << "-g" << as_string (w) << "x" << as_string (h) << " "; int bbw, bbh; - double rw, rh; + int rw, rh; gs_image_size (image, bbw, bbh); - rw= (double)w*72/bbw; - rh= (double)h*72/bbh; - if ((int)rw < rw) rw= (int)rw+1; else rw= (int)rw; - if ((int)rh < rh) rh= (int)rh+1; else rh= (int)rh; + rw= (w*72-1)/bbw+1; + rh= (h*72-1)/bbh+1; cmd << "-r" << as_string (rw) << "x" << as_string (rh) << " "; cmd << "-sOutputFile=" << sys_concretize (png) << " "; cmd << sys_concretize (image); -- 1.7.1