From d8a94e3f5efc4495c1b8a0df8b426142a9349c8c Mon Sep 17 00:00:00 2001 From: Swann Date: Fri, 18 Sep 2020 15:58:43 +0200 Subject: [PATCH] fix: image uuid error --- multi_user/bl_types/bl_image.py | 49 ++++++++++++++++----------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/multi_user/bl_types/bl_image.py b/multi_user/bl_types/bl_image.py index 9d81f35..9ff74bd 100644 --- a/multi_user/bl_types/bl_image.py +++ b/multi_user/bl_types/bl_image.py @@ -44,30 +44,6 @@ format_to_ext = { } -def dump_image(image): - pixels = None - if image.source == "GENERATED" or image.packed_file is not None: - prefs = utils.get_preferences() - img_name = f"{image.uuid}.{format_to_ext[image.file_format]}" - - # Cache the image on the disk - image.filepath_raw = os.path.join(prefs.cache_directory, img_name) - os.makedirs(prefs.cache_directory, exist_ok=True) - image.save() - - if image.source == "FILE": - image_path = bpy.path.abspath(image.filepath_raw) - image_directory = os.path.dirname(image_path) - os.makedirs(image_directory, exist_ok=True) - image.save() - file = open(image_path, "rb") - pixels = file.read() - file.close() - else: - raise ValueError() - return pixels - - class BlImage(BlDatablock): bl_id = "images" bl_class = bpy.types.Image @@ -77,6 +53,29 @@ class BlImage(BlDatablock): bl_check_common = False bl_icon = 'IMAGE_DATA' + def dump_image(self, image): + pixels = None + if image.source == "GENERATED" or image.packed_file is not None: + prefs = utils.get_preferences() + img_name = f"{self.uuid}.{format_to_ext[image.file_format]}" + + # Cache the image on the disk + image.filepath_raw = os.path.join(prefs.cache_directory, img_name) + os.makedirs(prefs.cache_directory, exist_ok=True) + image.save() + + if image.source == "FILE": + image_path = bpy.path.abspath(image.filepath_raw) + image_directory = os.path.dirname(image_path) + os.makedirs(image_directory, exist_ok=True) + image.save() + file = open(image_path, "rb") + pixels = file.read() + file.close() + else: + raise ValueError() + return pixels + def _construct(self, data): return bpy.data.images.new( name=data['name'], @@ -108,7 +107,7 @@ class BlImage(BlDatablock): def _dump(self, instance=None): assert(instance) data = {} - data['pixels'] = dump_image(instance) + data['pixels'] = self.dump_image(instance) dumper = Dumper() dumper.depth = 2 dumper.include_filter = [