Beispiel #1
0
        def parse_value(rawvalue, cname, version):
            """Parses a setting value, for a given setting name and brushfile version."""
            if cname in string_value_settings:
                string = brushinfo_unquote(rawvalue)
                return [(cname, string)]
            elif version <= 1 and cname == "color":
                rgb = [int(c) / 255.0 for c in rawvalue.split(" ")]
                h, s, v = helpers.rgb_to_hsv(*rgb)
                return [("color_h", [h, {}]), ("color_s", [s, {}]), ("color_v", [v, {}])]
            elif version <= 1 and cname == "change_radius":
                if rawvalue == "0.0":
                    return []
                raise Obsolete, "change_radius is not supported any more"
            elif version <= 2 and cname == "adapt_color_from_image":
                if rawvalue == "0.0":
                    return []
                raise Obsolete, "adapt_color_from_image is obsolete, ignored;" + " use smudge and smudge_length instead"
            elif version <= 1 and cname == "painting_time":
                return []

            if version <= 1 and cname == "speed":
                cname = "speed1"
            parts = rawvalue.split("|")
            basevalue = float(parts[0])
            input_points = {}
            for part in parts[1:]:
                inputname, rawpoints = part.strip().split(" ", 1)
                if version <= 1:
                    points = parse_points_v1(rawpoints)
                else:
                    points = parse_points_v2(rawpoints)
                assert len(points) >= 2
                input_points[inputname] = points
            return [(cname, [float(basevalue), input_points])]
        def parse_value(rawvalue, cname, version):
            """Parses a setting value, for a given setting name and brushfile version."""
            if cname in string_value_settings:
                string = brushinfo_unquote(rawvalue)
                return [(cname, string)]
            elif version <= 1 and cname == 'color':
                rgb = [int(c)/255.0 for c in rawvalue.split(" ")]
                h, s, v = helpers.rgb_to_hsv(*rgb)
                return [('color_h', [h, {}]), ('color_s', [s, {}]), ('color_v', [v, {}])]
            elif version <= 1 and cname == 'change_radius':
                if rawvalue == '0.0':
                    return []
                raise Obsolete, 'change_radius is not supported any more'
            elif version <= 2 and cname == 'adapt_color_from_image':
                if rawvalue == '0.0':
                    return []
                raise Obsolete, 'adapt_color_from_image is obsolete, ignored;' + \
                                ' use smudge and smudge_length instead'
            elif version <= 1 and cname == 'painting_time':
                return []
 
            if version <= 1 and cname == 'speed':
                cname = 'speed1'
            parts = rawvalue.split('|')
            basevalue = float(parts[0])
            input_points = {}
            for part in parts[1:]:
                inputname, rawpoints = part.strip().split(' ', 1)
                if version <= 1:
                    points = parse_points_v1(rawpoints)
                else:
                    points = parse_points_v2(rawpoints)
                assert len(points) >= 2
                input_points[inputname] = points
            return [(cname, [float(basevalue), input_points])]
Beispiel #3
0
        def parse_value(rawvalue, cname, version):
            """Parses a setting value, for a given setting name and brushfile version."""
            if cname in STRING_VALUE_SETTINGS:
                string = brushinfo_unquote(rawvalue)
                return [(cname, string)]
            elif version <= 1 and cname == 'color':
                rgb = [int(c)/255.0 for c in rawvalue.split(" ")]
                h, s, v = helpers.rgb_to_hsv(*rgb)
                return [('color_h', [h, {}]), ('color_s', [s, {}]), ('color_v', [v, {}])]
            elif version <= 1 and cname == 'change_radius':
                if rawvalue == '0.0':
                    return []
                raise Obsolete('change_radius is not supported any more')
            elif version <= 2 and cname == 'adapt_color_from_image':
                if rawvalue == '0.0':
                    return []
                raise Obsolete('adapt_color_from_image is obsolete, ignored;' +
                               ' use smudge and smudge_length instead')
            elif version <= 1 and cname == 'painting_time':
                return []

            if version <= 1 and cname == 'speed':
                cname = 'speed1'
            parts = rawvalue.split('|')
            basevalue = float(parts[0])
            input_points = {}
            for part in parts[1:]:
                inputname, rawpoints = part.strip().split(' ', 1)
                if version <= 1:
                    points = parse_points_v1(rawpoints)
                else:
                    points = parse_points_v2(rawpoints)
                assert len(points) >= 2
                input_points[inputname] = points
            return [(cname, [float(basevalue), input_points])]
Beispiel #4
0
    def apply_brightness(self, colorArray, brightness=None):
        """Apply brightness modification to the colors

        Args:
            colorArray (ndarray): input array

        Returns:
            ndarray: output array with colors modified with brightness
        """
        hsv = rgb_to_hsv(colorArray)
        hsv[:, 2] *= brightness if brightness is not None else self.brightness
        rgb = hsv_to_rgb(hsv)
        return rgb.astype(np.int32)
 def set_color_rgb(self, rgb):
     self.set_color_hsv(helpers.rgb_to_hsv(*rgb))
Beispiel #6
0
 def set_color_rgb(self, rgb):
     self.set_color_hsv(helpers.rgb_to_hsv(*rgb))
Beispiel #7
0
 def append_hue_spectrum(self, rgbbase):
     h,s,v = rgb_to_hsv(*rgbbase)
     for hue_idx in xrange(20):
         hue = (hue_idx*0.05)
         self.append_hsv(hue, s,v)
Beispiel #8
0
 def hsv(self, index):
     if index < 0 or index > (len(self)-1):
         return None  # should be Exception perhaps?
     else:
         return rgb_to_hsv(*map(lambda x: x / 255.0, self[index]))
 def append_hue_spectrum(self, rgbbase):
     h,s,v = rgb_to_hsv(*rgbbase)
     for hue_idx in xrange(20):
         hue = (hue_idx*0.05)
         self.append_hsv(hue, s,v)
 def hsv(self, index):
     if index < 0 or index > (len(self)-1):
         return None  # should be Exception perhaps?
     else:
         return rgb_to_hsv(*map(lambda x: x / 255.0, self[index]))