From aedbcd4a704c202fc4b2e2922713655840f421dd Mon Sep 17 00:00:00 2001 From: yo mama Date: Sat, 12 Sep 2015 16:11:03 -0700 Subject: ok pretty much done with gradient, moving on to generate --- Pb/Gradient/__init__.py | 135 ++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 73 deletions(-) (limited to 'Pb/Gradient') diff --git a/Pb/Gradient/__init__.py b/Pb/Gradient/__init__.py index 6640278..bde42ba 100755 --- a/Pb/Gradient/__init__.py +++ b/Pb/Gradient/__init__.py @@ -24,7 +24,7 @@ _halftone_values = { } class PbGradient(Pb): - _test_params = { + example_params = { "width" : "200", "color1" : "#ffdead", "color2" : "blue", @@ -44,7 +44,7 @@ class PbGradient(Pb): def __init__(self, width=DEFAULT_WIDTH, height=DEFAULT_HEIGHT, color1=_default_color_1, color2=_default_color_2, - stripes=0, + stripes=False, stripenumber=0, stripeintensity=0, blurriness=0, @@ -66,7 +66,7 @@ class PbGradient(Pb): self.params.set_val("height", height, value_type="int") self.params.set_val("color1", color1, value_type="color") self.params.set_val("color2", color2, value_type="color") - self.params.set_val("stripes", stripes, value_type="int") + self.params.set_val("stripes", stripes, value_type="bool") self.params.set_val("stripenumber", stripenumber, value_type="int") self.params.set_val("stripeintensity", stripeintensity, value_type="int") self.params.set_val("blurriness", blurriness, value_type="int") @@ -75,36 +75,30 @@ class PbGradient(Pb): self.params.set_val("saturation", saturation, value_type="int") self.params.set_val("hue", hue, value_type="int") - self.params.set_val("halftone", halftone, value_type="enum") - self.params.set_val("bevel", bevel, value_type="enum") + self.params.set_val("halftone", halftone, value_type="enum", enum_values=[ + "checkeredfade", "etchedtransition", "bendaydots", + "smallerdots1", "smallerdots2", "flatstripes", + ]) + self.params.set_val("bevel", bevel, value_type="enum", enum_values=[ + "flatout", "flatinner", "evenlyframed", "biginner", + "bigouter", "dramaticflatout", "dramaticflatinner", + ]) self.params.set_val("percentbeveled", percentbeveled, value_type="int") - self.params.set_val("height", height, value_type="int") - self.params.set_val("height", height, value_type="int") - for key in PARAM_LIST: - if key in kwargs: - if key in ['color1', 'color2']: - params[key] = self.is_color(kwargs[key]) - else: - params[key] = self.sanitize(kwargs[key]) - - if key in ['rotate','tilt','blurriness','stripenumber','stripeintensity']: - params[key] = params[key] if self.is_number(params[key]) else "" - elif key in ['brightness', 'contrast', 'hue']: - if not self.is_number(params[key]) or params[key] == "100": params[key] = "" - else: - params[key] = "" - params['width'] = params['width'] if self.is_number(params['width']) else DEFAULT_WIDTH - params['height'] = params['height'] if self.is_number(params['height']) else DEFAULT_HEIGHT - params["color1"] = params["color1"] or DEFAULT_COLORS["color1"]; - params["color2"] = params["color2"] or DEFAULT_COLORS["color2"]; - self.params = params - if not self.params['percentbeveled']: self.params['percentbeveled'] = DEFAULT_BEVEL_PERCENT - self._bevelvalues = [ - "flatout", "flatinner", "evenlyframed", "biginner", - "bigouter", "dramaticflatout", "dramaticflatinner", - ] + self.params.set_val("tilt", tilt, value_type="int") + self.params.set_val("rotate", rotate, value_type="int") + self.params.set_val("flip", flip, value_type="bool") + self.params.set_val("flop", flop, value_type="bool") + + self.params.set_val("filetype", filetype, value_type="enum", enum_values=["gif", "png", "jpg"]) + self.params.set_val("gradienttype", gradienttype, value_type="enum", enum_values=[ + "default", "canvas", "radial", "colorspace", + "mirrored", "plasmawash", "gradientwash", "noise" + ]) + self.params.set_val("username", username, value_type="string") + + self.filename, self.filepath = self._filename_filepath_create() - def _filename_create(self): + def _filename_create(self, **kwargs): _base = "{}{}-{}_{}".format( self.__class__.__name__, self.params.color1.replace('#','').replace('(','-').replace(')','-'), @@ -116,75 +110,76 @@ class PbGradient(Pb): def _build_cmd(self): - self.cmd = [BIN_CONVERT] - self.cmd.extend([ + cmd = [BIN_CONVERT] + cmd.extend([ '-size', - "{}x{}".format(self.params["width"],self.params["height"]) + "{}x{}".format(self.params.width,self.params.height) ]) - if self.params['rotate']: self.cmd.extend(["-rotate", self.params["rotate"]]) - if self.params['tilt']: self.cmd.extend(["-distort","SRT",self.params['tilt']]) - if self.params['flip'] == "true": self.cmd.append("-flip") - if self.params['flop'] == "true": self.cmd.append("-flop") - if self.params['contrast']: self.cmd.extend(["-contrast-stretch", self.params['contrast']]) + if self.params.rotate: cmd.extend(["-rotate", self.params.rotate]) + if self.params.tilt: cmd.extend(["-distort","SRT",self.params.tilt]) + if self.params.flip == "true": cmd.append("-flip") + if self.params.flop == "true": cmd.append("-flop") + if self.params.contrast: cmd.extend(["-contrast-stretch", self.params.contrast]) _gradients = { - "default" : "gradient:{}-{}".format(self.params['color1'], self.params['color2']), - "canvas" : ["canvas:{}".format(self.params['color1'])], + "default" : "gradient:{}-{}".format(self.params.color1, self.params.color2), + "canvas" : ["canvas:{}".format(self.params.color1)], "radial" : [ - "radial-gradient:{}-{}".format( self.params['color1'], self.params['color2']) + "radial-gradient:{}-{}".format( self.params.color1, self.params.color2) ], "colorspace" : [ "-colorspace", "Gray", - "plasma:{}-{}".format(self.params['color1'], self.params['color2']) + "plasma:{}-{}".format(self.params.color1, self.params.color2) ], "mirrored" : [ - "plasma:{}-{}".format(self.params['color1'], self.params['color2']), + "plasma:{}-{}".format(self.params.color1, self.params.color2), "\(","+clone","-flop","\)", "append" ], "plasmawash" : [ - "plasma:{}-{}".format(self.params['color1'], self.params['color2']), + "plasma:{}-{}".format(self.params.color1, self.params.color2), "-set","colorspace","HSB" ], "gradientwash" : [ - "gradient:{}-{}".format(self.params['color1'], self.params['color2']), + "gradient:{}-{}".format(self.params.color1, self.params.color2), "-set","colorspace","HSB" ], "noise" : ["xc:","+noise","Random","-virtual-pixel","tile"] } cmd += _gradients[self.params.gradienttype] - if self.params['blurriness']: - self.cmd.extend(["-blur","0x{}".format(self.params["blurriness"]),"-auto-level"]) + if self.params.blurriness: + cmd.extend(["-blur","0x{}".format(self.params.blurriness),"-auto-level"]) - if self.params['stripes'] == "true" and len(self.params['stripenumber']): - self.cmd.extend(["-function","Sinusoid"]) - if self.params['stripeintensity']: - self.cmd.append("{},{}".format(self.params['stripenumber'],self.params["stripeintensity"])) + if self.params.stripes == "true" and len(self.params.stripenumber): + cmd.extend(["-function","Sinusoid"]) + if self.params.stripeintensity: + cmd.append("{},{}".format(self.params.stripenumber,self.params.stripeintensity)) else: - self.cmd.append(self.params['stripenumber']) - if self.params["halftone"] in HALFTONEVALUES: - self.cmd.extend([ + cmd.append(self.params.stripenumber) + if self.params.halftone in _halftone_values: + cmd.extend([ "-ordered-dither", - HALFTONEVALUES[self.params["halftone"]] + _halftone_values[self.params.halftone] ]) - self.cmd += [ + cmd += [ '-modulate', "{},{},{}".format( - self.params['brightness'] or "100", - self.params['saturation'] or "100", - self.params['hue'] or "100") + self.params.brightness or "100", + self.params.saturation or "100", + self.params.hue or "100") ] - self.cmd.append(os.path.join(self.directory,self.filename)); - self._call_cmd(self.cmd) + cmd.append(self.filepath); + self._call_cmd(cmd) + if self.params.bevel: self._make_bevel() def _get_bevelvalue(self): - w, h = map(int, (self.params['width'], self.params['height'])) + w, h = map(int, (self.params.width, self.params.height)) if h >= w: - bevpercentval = str(int(self.params['percentbeveled'])*0.005*int(h)) + bevpercentval = str(int(self.params.percentbeveled)*0.005*int(h)) else: - bevpercentval = str(int(self.params['percentbeveled'])*0.005*int(w)) + bevpercentval = str(int(self.params.percentbeveled)*0.005*int(w)) return { "flatout": ["-s",bevpercentval,"-m","outer"], "flatinner": ["-s",bevpercentval,"-m","inner"], @@ -193,20 +188,14 @@ class PbGradient(Pb): "bigouter": ["-s",bevpercentval,"-m","split","-c","50","-b","red","-a","25"], "dramaticflatout": ["-s",bevpercentval,"-m","outer","-a","25","-b","blue"], "dramaticflatinner": ["-s",bevpercentval,"-m","outer","-a","25","-b","blue"], - }[self.params['bevel']] + }[self.params.bevel] def _make_bevel(self): cmd = [BEVELBORDER] cmd += self._get_bevelvalue() - cmd += [ os.path.join(self.directory,self.filename), os.path.join(self.directory, self.filename) ] + cmd += [ self.filepath] self._call_cmd(cmd) def create(self): - self.filename = self.newfilename() - self.filepath = os.path.join(self.directory, self.filename) self._build_cmd() -# sys.stderr.write(str(self.cmd)) - - if self.params['bevel'] in self._bevelvalues: - self._make_bevel() -- cgit v1.2.3-70-g09d2