Changeset 307

Show
Ignore:
Timestamp:
07/23/08 10:44:41 (6 months ago)
Author:
bob
Message:

Fixed the PSD importation

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/artub/propertiesbar/propertyeditorcontrols.py

    r303 r307  
    460460             
    461461            if filename.endswith('.psd'): 
    462                 from PythonMagick import Image 
    463                 img = Image(str(filename)) 
     462                import PIL.Image 
     463                img = PIL.Image.open(str(filename)) 
    464464                base = str(filename[:-4]) + '.png' 
    465465                import tempfile 
    466                 import os.path 
    467                 import os 
    468466                import exceptions 
    469                 import glob 
     467                import shutil 
    470468                 
    471469                tempdir = tempfile.gettempdir() 
    472                 infos = img.get_layer_names() 
    473                 infos = infos.split('\n') 
    474                 layers = [] 
    475                 for i in infos: 
    476                     n, x, y = i.split('|') 
    477                     x = int(x) 
    478                     y = int(y) 
    479                     layers.append((n, x, y)) 
    480470                tempdir = tempdir + '/psd_outputs' 
     471                shutil.rmtree(tempdir, ignore_errors=True) 
     472                 
    481473                try: os.mkdir(tempdir) 
    482                 except exceptions.OSError:  
    483                     for i in glob.glob(tempdir + '/*'): 
    484                         os.remove(i) 
    485                  
    486                 img.write_files(tempdir + '/' + os.path.basename(base)) 
     474                except: pass 
     475                                 
     476                for index, layer in enumerate(img.layers): 
     477                        img.seek(index) 
     478                        img.save(join(tempdir, os.path.basename(base) + "_" + layer[0].decode('utf-8') + ".png")) 
     479                     
    487480                dlg = ib.ImageDialog(self, tempdir) 
    488481                dlg.Centre()  
    489482 
    490483                if dlg.ShowModal() == wx.ID_OK: 
    491                     import shutil 
    492484                    filename = wx.GetApp().frame.project.project_path + '/' + os.path.basename(dlg.GetFile()) 
    493485                    shutil.copyfile(dlg.GetFile(), filename) 
     
    498490                    return 
    499491 
    500                 for i in glob.glob(tempdir + '/*'): 
    501                     os.remove(i) 
    502                 os.rmdir(tempdir) 
     492                shutil.rmtree(tempdir, ignore_errors=True) 
    503493             
    504             filename = filename.replace('\\', '\\\\') 
    505494            nom = get_parent_class(self.iec.resource.__class__) 
    506495            classe = res.get_class(nom) 
    507496            c = classe.add_class(name, ["Animation"], [ 
    508                            "filenames = [u'" + filename + "']\n"]) 
     497                           "filenames = [" + repr(filename) + "]\n"]) 
    509498            res.ast_has_changed = True 
    510499            res.topy() 
     
    512501            wx.GetApp().artub_frame.update_treeitem(res) 
    513502            self.iec.editorCtrl.SetValue(nom + '.' + name) 
    514             import os 
    515             if os.name != "posix": 
     503            if os.name != "posix": # Hack 
    516504                self.iec.editorCtrl.PopDown() 
    517505            self.iec.propEditor.inspectorPost(False) 
     
    588576        self.cal.resource = self.resource 
    589577         
    590         if value == "NoneType": value = "None" 
    591578        self.editorCtrl.SetValue(value) 
    592579        self.editorCtrl.SetPopupContent(self.win) 
revenir en haut de la page