[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55934] trunk/blender/release/scripts/ modules/bpy_extras/object_utils.py: py api: simple function to get an image from an objects for simple formats that only support one image per object .
Campbell Barton
ideasman42 at gmail.com
Wed Apr 10 13:43:25 CEST 2013
Revision: 55934
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55934
Author: campbellbarton
Date: 2013-04-10 11:43:25 +0000 (Wed, 10 Apr 2013)
Log Message:
-----------
py api: simple function to get an image from an objects for simple formats that only support one image per object.
Modified Paths:
--------------
trunk/blender/release/scripts/modules/bpy_extras/object_utils.py
Modified: trunk/blender/release/scripts/modules/bpy_extras/object_utils.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_extras/object_utils.py 2013-04-10 09:49:44 UTC (rev 55933)
+++ trunk/blender/release/scripts/modules/bpy_extras/object_utils.py 2013-04-10 11:43:25 UTC (rev 55934)
@@ -201,3 +201,42 @@
return space_data.grid_scale_unit
return 1.0
+
+
+def object_image_guess(obj, bm=None):
+ """
+ Return a single image used by the object,
+ first checking the texture-faces, then the material.
+ """
+ # TODO, cycles/nodes materials
+ me = obj.data
+ if bm is None:
+ if obj.mode == 'EDIT':
+ bm = bmesh.from_edit_mesh(me)
+
+ if bm is not None:
+ tex_layer = bm.faces.layers.tex.active
+ if tex_layer is not None:
+ for f in bm.faces:
+ image = f[tex_layer].image
+ if image is not None:
+ return image
+ else:
+ tex_layer = me.uv_textures.active
+ if tex_layer is not None:
+ for tf in tex_layer.data:
+ image = tf.image
+ if image is not None:
+ return image
+
+ for m in obj.data.materials:
+ if m is not None:
+ # backwards so topmost are highest priority
+ for mtex in reversed(m.texture_slots):
+ if mtex and mtex.use_map_color_diffuse:
+ texture = mtex.texture
+ if texture and texture.type == 'IMAGE':
+ image = texture.image
+ if image is not None:
+ return image
+ return None
More information about the Bf-blender-cvs
mailing list