def _transform_brush_color(self): """ Apply eotf transform to the backend color. By only applying the transform here, the issue of strokemap and brush color consistency between new and old color rendering modes does not arise. """ hsv_orig = (self.brushinfo.get_base_value(k) for k in self.HSV_CNAMES) h, s, v = helpers.transform_hsv(hsv_orig, eotf()) settings_dict = brushsettings.settings_dict self.set_base_value(settings_dict['color_h'].index, h) self.set_base_value(settings_dict['color_s'].index, s) self.set_base_value(settings_dict['color_v'].index, v)
def brush_string_inverted_eotf(brush_string): try: brush = json.loads(brush_string) bsett = brush['settings'] k = 'base_value' hsv = bsett['color_h'][k], bsett['color_s'][k], bsett['color_v'][k] h, s, v = helpers.transform_hsv(hsv, 1.0 / 2.2) bsett['color_h'][k] = h bsett['color_s'][k] = s bsett['color_v'][k] = v return json.dumps(brush) except Exception: logger.exception("Failed to invert color in brush string") return brush_string