GIMP Chat
http://gimpchat.com/

ShellOut.py (was XNViewShell) - Call external programs
http://gimpchat.com/viewtopic.php?f=9&t=970
Page 4 of 15

Author:  Rod [ Mon Jan 17, 2011 10:53 am ]
Post subject:  Re: XNViewShell

Well that's okay i like Deep Paint's filter menu better. (works like Gimps)

Thanks though PM. :)

Author:  mahvin [ Wed Jan 19, 2011 2:53 pm ]
Post subject:  Re: XNViewShell

Hey Rob:

I finally managed to get this script loaded on my Ubuntu 64 machine and this was the result:

Traceback (most recent call last):
File "/usr/lib/gimp/2.0/python/gimpfu.py", line 692, in response
dialog.res = run_script(params)
File "/usr/lib/gimp/2.0/python/gimpfu.py", line 353, in run_script
return apply(function, params)
File "/home/mahvin/.gimp-2.6/plug-ins/XNViewShell.py", line 74, in plugin_main
pdb.file_png_save_defaults(tempimage, tempdrawable, tempfilename, tempfilename)
error: procedure not found

UPDATE: The link you offer on the Registry to the file for Linux is actually the wrong file. I borrowed the correct one from my laptop because you changed all the zips in this thread. But just to avoid confusing anyone I will point you to the code of significance here: http://gimpchat.com/viewtopic.php?f=9&t ... =20#p10508

The tempfilename has to be declared for XnView as noted in the command seen on that post. The new zips seem to cover Windows only.

Author:  MareroQ [ Wed Jan 19, 2011 3:28 pm ]
Post subject:  Re: XNViewShell

Maybe the point is that APNG is installed - there is a conflict
So I had in XP - until you restored png

Traceback (most recent call last):
File "C:\Program Files\GIMP-2.0\lib\gimp\2.0\python\gimpfu.py", line 692, in response
dialog.res = run_script(params)
File "C:\Program Files\GIMP-2.0\lib\gimp\2.0\python\gimpfu.py", line 353, in run_script
return apply(function, params)
File "C:\Documents and Settings\MarQ\.gimp-2.7\plug-ins\XNViewShell_PL.py", line 74, in plugin_main
pdb.file_png_save_defaults(tempimage, tempdrawable, tempfilename, tempfilename)
error: procedure not found

Author:  mahvin [ Wed Jan 19, 2011 3:43 pm ]
Post subject:  Re: XNViewShell

MareroQ:

You were actually right on the money about APNG, I had to move file-png back into the plug-ins folder in order to get it to work, but the actual zip file Rob links to on the Registry (for Linux users) will not work because it's coded for Windows.

Linux users need this code:
 
  # Use temp file names from gimp, it reflects the user's choices in gimp.rc
  # change as indicated if you always want to use the same temp file name
  tempwinfile = "C:\\Windows\\Temp\\tempfile.png"
  tempfilename = "/home/rob/.wine/dosdevices/c:/windows/temp/tempfile.png"

  # !!! Note no run-mode first parameter, and user entered filename is empty string
  pdb.gimp_progress_set_text ("Saving a copy")
  pdb.file_png_save_defaults(tempimage, tempdrawable, tempfilename, tempfilename)

  # Command line - Change to match where you installed XnView
  command = "/usr/bin/wine \"C:\\Program Files\\XnView\\xnview.exe\" \"" + tempwinfile + "\""
  gimp.message(command)
  args = shlex.split(command)

Author:  PhotoMaster [ Thu Jan 20, 2011 10:28 pm ]
Post subject:  Re: XNViewShell

My Deep Paint code decided to stop working on me. I'm not sure why, but I'm still playing with it.

I also modified a copy for IrfanView. Now this is where things get wierd. When I run my NIK ColorEfex Pro plugin with PSPI, it runs ok as long as the image has no alpha channel. If there is an alpha channel, the image becomes just an empty image. If I run the same filter in XnView, it just get's scrambled regardless of alpha channel. The filter works correctly in IrfanView, but IrfanView doesn't return the image. I can copy the image in IrfanView and paste it in Gimp, and that works. This all has me incredibly confused. I tested it with my generic test image and this is what I got. The IrfanView and PSPI images are correct.

Attachments:
NIK Filter.jpg
NIK Filter.jpg [ 445.26 KiB | Viewed 3095 times ]

Author:  PhotoMaster [ Thu Jan 20, 2011 10:31 pm ]
Post subject:  Re: XNViewShell

Oh yeah, I forgot to mention that when I run Deep Paint on an image and use the NIK plugin, Deep Paint blows up completely. Photobie runs the plugin but doesn't actually apply it to the image.

Author:  lylejk [ Fri Jan 21, 2011 1:20 am ]
Post subject:  Re: XNViewShell

Not sure, but I believe when you open the image in Irfanview, it strips the alpha channel so that is why you get a clean instead of garbaged result. :)

Author:  MareroQ [ Fri Jan 21, 2011 11:53 am ]
Post subject:  Re: XNViewShell

Question :

" The filter works correctly in IrfanView, but IrfanView doesn't return the image" ?

IrfanView return the image to Gimp including alpha channel !

Attachments:
Irfan2.png
Irfan2.png [ 176.78 KiB | Viewed 3083 times ]
Irfan1.png
Irfan1.png [ 622.49 KiB | Viewed 3083 times ]

Author:  Rod [ Fri Jan 21, 2011 1:00 pm ]
Post subject:  Re: XNViewShell

its all weird =)

Author:  MareroQ [ Fri Jan 21, 2011 1:49 pm ]
Post subject:  Re: XNViewShell

Insisted on the application Impresjonist. 8bf in Ubuntu - and it is possible

Attachments:
Irfan in Ubuntu 1.png
Irfan in Ubuntu 1.png [ 713.57 KiB | Viewed 3075 times ]
Irfan in Ubuntu 2.png
Irfan in Ubuntu 2.png [ 816.27 KiB | Viewed 3075 times ]
Irfan in Ubuntu 3.png
Irfan in Ubuntu 3.png [ 1.27 MiB | Viewed 3075 times ]

Author:  PhotoMaster [ Fri Jan 21, 2011 1:51 pm ]
Post subject:  Re: XNViewShell

It does everything it's supposed to do, except return the image. It says it saved but Gimp never sees it.

Author:  MareroQ [ Fri Jan 21, 2011 2:06 pm ]
Post subject:  Re: XNViewShell

Sorry for my english- still learning - but scroll Irfan 3.png in Ubuntu, however, suggests that such

Author:  PhotoMaster [ Fri Jan 21, 2011 3:22 pm ]
Post subject:  Re: XNViewShell

It appears that the Irfanview script, and Irfanview, saves the resulting image but Gimp isn't loading it. I did a line by line comparison of the XnView script and the Irfanview script and they are the same except for the path and program name. I am confuuuuused.

Author:  MareroQ [ Fri Jan 21, 2011 4:37 pm ]
Post subject:  Re: XNViewShell

I did the same thing but I had a mechanical errors when:

the path and program name:

in Windows:

command = "\"C:\\Program Files\\IrfanView\\Irfanview.exe\" \"" + tempfilename + "\"" - no

command = "\"C:\\Program Files\\IrfanView\\i_view32.exe\" \"" + tempfilename + "\"" - yes

In IrfanView:

Save as - no
Save (original folder) - yes

And nothing more to work ... each computer is different ?

Author:  MareroQ [ Thu Feb 03, 2011 4:54 pm ]
Post subject:  Re: XNViewShell

In Linux works great plugin plugin-trace.py (in Windows for me, broken)
http://registry.gimp.org/node/21349
Png files using XNViewShell can be processed in Inkscape (Shell_Inkscape in annexes)
Does anyone know if how to export (using xnviewshel) svg from Gimp to Inkscape?

Attachments:
Gimp-Inkscape 1.png
Gimp-Inkscape 1.png [ 711.79 KiB | Viewed 2618 times ]
Gimp-Inkscape 3.png
Gimp-Inkscape 3.png [ 466.71 KiB | Viewed 2618 times ]
Gimp-Inkscape.zip [3.89 KiB]
Downloaded 121 times

Author:  lylejk [ Thu Feb 03, 2011 8:54 pm ]
Post subject:  Re: XNViewShell

When I went from WinXP to Win7 64-bit, Autotrace no longer worked (still works in my XP VM though). I have no idea why it doesn't work. Potrace still does work though. They have not updated Autotrace for a long time, and am not holding my breath that they will. :)

Author:  PhotoMaster [ Thu Feb 03, 2011 9:12 pm ]
Post subject:  Re: XNViewShell

MareroQ wrote:
command = "\"C:\\Program Files\\IrfanView\\Irfanview.exe\" \"" + tempfilename + "\"" - no

command = "\"C:\\Program Files\\IrfanView\\i_view32.exe\" \"" + tempfilename + "\"" - yes

These command lines return the following errors.

Global name no is not defined
Global name yes is not defined

Author:  Rod [ Fri Feb 04, 2011 2:45 am ]
Post subject:  Re: XNViewShell

I got Deep Paint and XnView to run together in the Plug-ins folder.
I'll give Inkscape a try, and get back to you.

Author:  Rod [ Fri Feb 04, 2011 3:11 am ]
Post subject:  Re: XNViewShell

Think this will do it.
Copy and paste in notepad ++ or an text editor then name it - InkscapeShell.py -
then place it in your Plug-ins folder.

You will find it under Filters/Call/Inkscape

#!/usr/bin/env python

'''
InkscapeShell.py
call Inkscape to allow tracing or further editing in vector.  Windows Only.

Author:
Rob Antonishen

Version:
0.3 Fixed to work with filters that change alpha

this script is modelled after the mm extern LabCurves trace plugin
by Michael Munzert http://www.mm-log.com/lab-curves-gimp


License:

This program 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; version 3 of the License.

This program 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.

The GNU Public License is available at
http://www.gnu.org/copyleft/gpl.html

'''

from gimpfu import *
import shlex
import subprocess
import os, sys
import tempfile

def plugin_main(image, drawable, visible):
  pdb.gimp_image_undo_group_start(image)
 
  # Copy so the save operations doesn't affect the original
  if visible == 0:
    # Save in temporary.  Note: empty user entered file name
    temp = pdb.gimp_image_get_active_drawable(image)
  else:
    # Get the current visible
    temp = pdb.gimp_layer_new_from_visible(image, image, "Visible")
    image.add_layer(temp, 0)

  buffer = pdb.gimp_edit_named_copy(temp, "InkscapeShellTemp")

  #save selection if one exists
  hassel = pdb.gimp_selection_is_empty(image) == 0
  if hassel:
    savedsel = pdb.gimp_selection_save(image)
   
  tempimage = pdb.gimp_edit_named_paste_as_new(buffer)
  pdb.gimp_buffer_delete(buffer)
  if not tempimage:
    raise RuntimeError
  pdb.gimp_image_undo_disable(tempimage)

  tempdrawable = pdb.gimp_image_get_active_layer(tempimage)

  # Use temp file names from gimp, it reflects the user's choices in gimp.rc
  # change as indicated if you always want to use the same temp file name
  tempfilename = pdb.gimp_temp_name("png")
  #tempfilename = os.path.join(tempfile.gettempdir(), "Inkscapetempfile.png")
 

  # !!! Note no run-mode first parameter, and user entered filename is empty string
  pdb.gimp_progress_set_text ("Saving a copy")
  pdb.file_png_save_defaults(tempimage, tempdrawable, tempfilename, tempfilename)

  # Command line - Change to match where you installed XnView
  command = "\"C:\\Program Files\\Inkscape\\inkscape.exe\" \"" + tempfilename + "\""
  args = shlex.split(command)

  # Invoke external command
  pdb.gimp_progress_set_text ("run Inkscape...")
  pdb.gimp_progress_pulse()
  child = subprocess.Popen(args, shell=False)
  child.communicate()

  # put it as a new layer in the opened image
  try:
    newlayer2 = pdb.gimp_file_load_layer(tempimage, tempfilename)
  except:
    RuntimeError
  tempimage.add_layer(newlayer2,-1)
  buffer = pdb.gimp_edit_named_copy(newlayer2, "InkscapeShellTemp")

  if visible == 0:
    sel = pdb.gimp_edit_named_paste(drawable, buffer, 1)
  else:
    sel = pdb.gimp_edit_named_paste(temp, buffer, 1)
   
  pdb.gimp_buffer_delete(buffer)
  pdb.gimp_edit_clear(temp)   
  pdb.gimp_floating_sel_anchor(sel)

  #load up old selection
  if hassel:
    pdb.gimp_selection_load(savedsel)
    image.remove_channel(savedsel)
 
  # cleanup
  os.remove(tempfilename)  # delete the temporary file
  gimp.delete(tempimage)   # delete the temporary image

  # Note the new image is dirty in Gimp and the user will be asked to save before closing.
  pdb.gimp_image_undo_group_end(image)
  gimp.displays_flush()


register(
        "python_fu_inkscapeshell",
        "Call Inkscape",
        "Call Inkscape",
        "Rob Antonishen",
        "Copyright 2011 Rob Antonishen",
        "2011",
        "<Image>/Filters/Call/Inkscape...",
        "RGB*, GRAY*",
        [ (PF_RADIO, "visible", "Layer:", 1, (("new from visible", 1),("current layer",0)))
        ],
        [],
        plugin_main,
        )

main()


Yup works for me. :)
Image

Author:  Rod [ Fri Feb 04, 2011 3:21 am ]
Post subject:  Re: XNViewShell

Yes to be sure it worked i created a small red vector square on the gimp temp image
Be sure and save as svg it will revert back to a jpg or whatever format it was.
Also be sure and save it as the exact name you opened it in Inkscape as. (same ending number)
Image: after export back to Gimp
Image

Page 4 of 15 All times are UTC - 5 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/