Switch to full style
Post all Gimp scripts and script writing questions here
Post a reply

Re: XNViewShell

Mon Jan 17, 2011 10:53 am

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

Thanks though PM. :)

Re: XNViewShell

Wed Jan 19, 2011 2:53 pm

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.

Re: XNViewShell

Wed Jan 19, 2011 3:28 pm

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

Re: XNViewShell

Wed Jan 19, 2011 3:43 pm

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:
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)

Re: XNViewShell

Thu Jan 20, 2011 10:28 pm

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.

Re: XNViewShell

Thu Jan 20, 2011 10:31 pm

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.

Re: XNViewShell

Fri Jan 21, 2011 1:20 am

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. :)

Re: XNViewShell

Fri Jan 21, 2011 11:53 am

Question :

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

IrfanView return the image to Gimp including alpha channel !

Re: XNViewShell

Fri Jan 21, 2011 1:00 pm

its all weird =)

Re: XNViewShell

Fri Jan 21, 2011 1:49 pm

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

Re: XNViewShell

Fri Jan 21, 2011 1:51 pm

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

Re: XNViewShell

Fri Jan 21, 2011 2:06 pm

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

Re: XNViewShell

Fri Jan 21, 2011 3:22 pm

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.

Re: XNViewShell

Fri Jan 21, 2011 4:37 pm

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 ?

Re: XNViewShell

Thu Feb 03, 2011 4:54 pm

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?

Re: XNViewShell

Thu Feb 03, 2011 8:54 pm

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. :)

Re: XNViewShell

Thu Feb 03, 2011 9:12 pm

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

Re: XNViewShell

Fri Feb 04, 2011 2:45 am

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.

Re: XNViewShell

Fri Feb 04, 2011 3:11 am

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

Code:
#!/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

Re: XNViewShell

Fri Feb 04, 2011 3:21 am

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
Post a reply