def colors(self, source): filename = '{}.png'.format(md5hash(source)) destination = self.save_path + filename try: if xbmcvfs.exists(destination): os.utime(destination, None) img = Image.open(xbmc.translatePath(destination)) else: img = _openimage(source, self.save_path, filename) img.thumbnail((256, 256)) img = img.convert('RGB') img.save(destination) maincolor_rgb = self.get_maincolor(img) maincolor_hex = self.rgb_to_hex(*self.get_color_lumsat( *maincolor_rgb)) compcolor_rgb = self.get_compcolor(*maincolor_rgb) compcolor_hex = self.rgb_to_hex(*self.get_color_lumsat( *compcolor_rgb)) maincolor_propname = self.save_prop + '.Main' maincolor_propchek = self.save_prop + '.MainCheck' maincolor_propvalu = get_property(maincolor_propname) if not maincolor_propvalu: get_property(maincolor_propname, set_property=maincolor_hex) else: get_property(maincolor_propchek, set_property=maincolor_propvalu) thread_maincolor = Thread(target=self.set_prop_colorgradient, args=[ maincolor_propname, maincolor_propvalu, maincolor_hex, maincolor_propchek ]) thread_maincolor.start() compcolor_propname = self.save_prop + '.Comp' compcolor_propchek = self.save_prop + '.CompCheck' compcolor_propvalu = get_property(compcolor_propname) if not compcolor_propvalu: get_property(compcolor_propname, set_property=compcolor_hex) else: get_property(compcolor_propchek, set_property=compcolor_propvalu) thread_compcolor = Thread(target=self.set_prop_colorgradient, args=[ compcolor_propname, compcolor_propvalu, compcolor_hex, compcolor_propchek ]) thread_compcolor.start() img.close() return maincolor_hex except Exception as exc: kodi_log(exc, 1) return ''
def desaturate(self, source): filename = '{}.png'.format(md5hash(source)) destination = self.save_path + filename try: if xbmcvfs.exists(destination): os.utime(destination, None) else: img = _openimage(source, self.save_path, filename) img = img.convert('LA') img.save(destination) img.close() return destination except Exception: return ''
def crop(self, source): filename = 'cropped-{}.png'.format(md5hash(source)) destination = self.save_path + filename try: if xbmcvfs.exists(destination): os.utime(destination, None) else: img = _openimage(source, self.save_path, filename) img = img.crop(img.convert('RGBa').getbbox()) img.save(destination) img.close() return destination except Exception: return ''
def blur(self, source, radius=20): filename = '{}{}.png'.format(md5hash(source), radius) destination = self.save_path + filename try: if xbmcvfs.exists(destination): os.utime(destination, None) else: img = _openimage(source, self.save_path, filename) img.thumbnail((256, 256)) img = img.convert('RGB') img = img.filter(ImageFilter.GaussianBlur(radius)) img.save(destination) img.close() return destination except Exception: return ''