Fri Jan 21, 2011 1:51 pm
Fri Jan 21, 2011 2:06 pm
Fri Jan 21, 2011 3:22 pm
Fri Jan 21, 2011 4:37 pm
Thu Feb 03, 2011 4:54 pm
Thu Feb 03, 2011 8:54 pm
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
Fri Feb 04, 2011 2:45 am
Fri Feb 04, 2011 3:11 am
#!/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()
Fri Feb 04, 2011 3:21 am
Fri Feb 04, 2011 6:56 am
Fri Feb 04, 2011 9:22 am
Fri Feb 04, 2011 11:14 am
Fri Feb 04, 2011 12:10 pm
MareroQ wrote:My problem to solve is the question whether it is possible to use the call to operating on svg files (not png)
how to replace:
pdb.file_png_save_defaults(tempimage, tempdrawable, tempfilename, tempfilename)
and what procedure ?
pdb.gimp_vectors_export_to_file ?
pdb.gimp_vectors_import_from_file ?
Fri Feb 04, 2011 2:23 pm
Fri Feb 04, 2011 3:35 pm
Fri Feb 04, 2011 4:03 pm
Fri Feb 04, 2011 4:08 pm
Sat Feb 05, 2011 3:06 am
I wish Inkscape and GIMP were combined into one app anyway, but maybe I request too much
Sat Feb 05, 2011 3:37 am
MareroQ wrote:For sure it was ever presented
http://www.anamorphosis.com/software.html
... but that's another story XNViewShell...
PS. We call for the use of different programs - may be able to build a python drop-down list box - which program to open?
#!/usr/bin/env python
'''
AnamorphMeShell.py
call AnamorphMe to allow 3-D manipulation. 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, "AnamorphMeShellTemp")
#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\\AnamorphMe\\AnamorphMe.exe\" \"" + tempfilename + "\""
args = shlex.split(command)
# Invoke external command
pdb.gimp_progress_set_text ("run AnamorphMe...")
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, "AnamorphMeShellTemp")
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_anamorphmeshell",
"Call AnamorphMe",
"Call AnamorphMe",
"Rob Antonishen",
"Copyright 2011 Rob Antonishen",
"2011",
"<Image>/Filters/Call/AnamorphMe...",
"RGB*, GRAY*",
[ (PF_RADIO, "visible", "Layer:", 1, (("new from visible", 1),("current layer",0)))
],
[],
plugin_main,
)
main()