I have been trying to create an animation using 300 eps files. When I try to open all the 300 files as layers (File -> open As Layers), a dialog box appears for each file with the heading "Import from Postscript" .

I have to click on "import" button for every image, in order import the images.

Is there a way to avoid the appearance of this dialog box for each image, because clicking "import" for 300 times is not at all a manageable task.

Thank you.

  • Have you tried to add an intermediary passage (e.g. a conversion)? Could be more fast. – Paolo Gibellini Nov 29 '14 at 15:36
  • Yeah, it works without an issue with png images. Why this happens for eps is probably because GIMP doesn't recognize this format. I wanted to use eps because it's of better quality than png. – Gihan Nov 30 '14 at 18:43
  • The problem is related to the parameters to be used to render the eps file (e.g. the size), which can't be passed command line to Gimp. Once fixed the size, for the Gimp is the same start from an eps or a png. My suggestion is to split the processing in two: at first, render the eps file as png with an external program (Imagemagick, Ghostscript, Inkscape can be used command-line), and then import in Gimp all the png files. See also here. – Paolo Gibellini Nov 30 '14 at 20:14
  • 1
    Yeah, That's probably the only option. Thanks! – Gihan Dec 1 '14 at 21:11

If you have GIMP-GAP (http://www.gimp.org/tutorials/Using_GAP/) installed then you can use it to load your files.

1) Make sure that all of your frames are named sequentially[*] using a pattern such as "filename_0001.eps", "filename_0002.eps", "filename_0003.eps", ...

2) Open the first file using "Edit->Open" -- this will present you with the postscript settings dialog box. (You will only be presented this dialog once.)

3) Perform "Video->Frames to Image..." to convert the file sequence to a multilayer image.

[*] If your filenames aren't sequential, you can rename them using GNU BASH by running the following command in the directory containing the .eps files.

f=(*.eps);i=($(seq -w 1 ${#f[@]}));for n in $(seq 0 $(expr ${#f[@]} - 1 ));do mv ${f[n]} frame_${i[n]}.eps;done

  • Hi saul, welcome to GDSE and thanks for your answer. Could you please enclose your code in ` backticks so it looks like this? That way, it's easier to see where it actually ends. Thanks! If you have any questions, please see the help center or ping one of us in chat once your reputation is sufficient (20). Keep contributing and enjoy the site! – Vincent Dec 5 '14 at 9:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.