Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2006-01-27 01:47:31 +0300
committerCampbell Barton <ideasman42@gmail.com>2006-01-27 01:47:31 +0300
commit6dbe25dd9dfe3d5dd41dade0ec72a689441e9383 (patch)
tree5b0e63ccca6d4fdff1789912796cde4ccdc3866c
parent5e19642c559ebf8aa8b7e236b3b46d4541505d99 (diff)
A little utility script I have been using for a long time but was recently able to improve with 2.41's features.
Edits the current image in an external application, esp usefull when dealing with projects that have lots of images. Basicaly-- a quck way to have the image in the gimp (using gimp-remote) without rooting around in your project tree. Added registry variable to save the external application... and some OS context for what app to run- could somebody test on macosx+win32. How about a python slot in the Image Menu?
-rw-r--r--release/scripts/image_edit.py95
1 files changed, 95 insertions, 0 deletions
diff --git a/release/scripts/image_edit.py b/release/scripts/image_edit.py
new file mode 100644
index 00000000000..17dc182d235
--- /dev/null
+++ b/release/scripts/image_edit.py
@@ -0,0 +1,95 @@
+#!BPY
+"""
+Name: 'Image Edit (External App)'
+Blender: 241
+Group: 'UV'
+Tooltip: 'Edits the image in another application. The Gimp for eg.'
+"""
+
+__author__ = "Campbell Barton"
+__url__ = ["blender", "elysiun"]
+__version__ = "1.0"
+
+__bpydoc__ = """\
+This script opens the current image in an external application for editing.
+
+Useage:
+Choose an image for editing in the UV/Image view.
+Select UVs, Image Edit (External App)
+For first time users try running the default application *
+If the application does not open you can type in the full path.
+The last entered application will be saved as a default.
+
+* Note, Start for win32 and open for macos will use system default assosiated application.
+"""
+
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# 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; either version 2
+# of the License, or (at your option) any later version.
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# ***** END GPL LICENCE BLOCK *****
+# --------------------------------------------------------------------------
+
+
+try:
+ import os
+ import sys as py_sys
+ platform = py_sys.platform
+except:
+ Draw.PupMenu('Error, python not installed')
+ os=None
+
+import Blender
+from Blender import Image, sys, Draw, Registry
+
+def main():
+ image = Image.GetCurrent()
+ if not image: # Image is None
+ print 'ERROR: You must select an active Image.'
+ return
+ imageFileName = sys.expandpath( image.filename )
+
+ pupblock = [imageFileName.split('/')[-1].split('\\')[-1]]
+
+ try:
+ appstring = Registry.GetKey('ExternalImageEditor', True)
+ appstring = appstring['path']
+ except:
+ pupblock.append('first time, set path.')
+ if platform == 'win32':
+ appstring = 'start "%f"'
+ elif platform == 'darwin':
+ appstring = 'open "%f"'
+ else:
+ appstring = 'gimp-remote "%f"'
+
+ appstring_but = Draw.Create(appstring)
+
+ pupblock.append(('editor: ', appstring_but, 0, 48, 'Path to application, %f will be replaced with the image path.'))
+
+ if not Draw.PupBlock('External Image Editor...', pupblock):
+ return
+
+ appstring = appstring_but.val
+
+ Registry.SetKey('ExternalImageEditor', {'path':appstring}, True)
+
+ # -------------------------------
+
+ appstring = appstring.replace('%f', imageFileName)
+ os.system(appstring)
+
+if __name__ == '__main__' and os != None:
+ main() \ No newline at end of file