[Bf-blender-cvs] [fcb558a] temp-sybren-poselib: Use new 'copy_from_render()' Image func to avoid saving previews render on disk and then reloading.

Bastien Montagne noreply at git.blender.org
Mon Nov 14 18:18:15 CET 2016


Commit: fcb558ae62ade917e04143d80576f10ee958a255
Author: Bastien Montagne
Date:   Mon Nov 14 18:17:05 2016 +0100
Branches: temp-sybren-poselib
https://developer.blender.org/rBfcb558ae62ade917e04143d80576f10ee958a255

Use new 'copy_from_render()' Image func to avoid saving previews render on disk and then reloading.

===================================================================

M	release/scripts/startup/bl_operators/poselib.py

===================================================================

diff --git a/release/scripts/startup/bl_operators/poselib.py b/release/scripts/startup/bl_operators/poselib.py
index 63c3059..1c6db8e 100644
--- a/release/scripts/startup/bl_operators/poselib.py
+++ b/release/scripts/startup/bl_operators/poselib.py
@@ -118,20 +118,16 @@ class POSELIB_OT_render_previews(Operator):
         else:
             bpy.ops.render.render()
 
-        with tempfile.TemporaryDirectory() as tmpdir:
-            fname = os.path.join(tmpdir, 'poselib.png')
-            bpy.data.images['Render Result'].save_render(fname)
+        im = bpy.data.images['Render Result'].copy_from_render(scene=context.scene)
 
-            # Loading and handling the image data should all be done while the tempfile
-            # still exists on disk.
-            im = bpy.data.images.load(fname)
+        im.scale(*self.image_size)
+        plib.preview.image_frame_img_set(plib_index, im)
 
-            im.scale(*self.image_size)
-            plib.preview.image_frame_img_set(plib_index, im)
+        if self.icon_size != self.image_size:
+            im.scale(*self.icon_size)
+        plib.preview.icon_frame_img_set(plib_index, im)
 
-            if self.icon_size != self.image_size:
-                im.scale(*self.icon_size)
-            plib.preview.icon_frame_img_set(plib_index, im)
+        bpy.data.images.remove(im)
 
     def invoke(self, context, event):
         wm = context.window_manager




More information about the Bf-blender-cvs mailing list