From 1b7af1e63f7a498835917bd76384ec68b744afc9 Mon Sep 17 00:00:00 2001 From: yo mama Date: Sat, 12 Sep 2015 10:50:24 -0700 Subject: added gradient --- Pb/Gradient/__init__.py | 151 +++++++++++++++++++++++------------------------- 1 file changed, 73 insertions(+), 78 deletions(-) (limited to 'Pb/Gradient/__init__.py') diff --git a/Pb/Gradient/__init__.py b/Pb/Gradient/__init__.py index c384df2..6640278 100755 --- a/Pb/Gradient/__init__.py +++ b/Pb/Gradient/__init__.py @@ -9,51 +9,77 @@ import sha from Config import * from Pb import Pb -PARAM_LIST = [ - "width", "height", - "color1", "color2", - "stripes", - "stripenumber", "stripeintensity", - "blurriness", - "contrast", - "brightness", "saturation", "hue", - "halftone", - "bevel", "percentbeveled", - "rotate", "flip", "flop", "tilt", - "filetype", - "gradienttype", - "username", -] -DEFAULT_FORMAT = "png" -DEFAULT_COLORS = { - "color1" : "white", - "color2" : "black", -}; +_default_color_1 = "white" +_default_color_2 = "black" -DEFAULT_WIDTH = "200" -DEFAULT_HEIGHT = "200" -DEFAULT_BEVEL_PERCENT = "12"; +_default_bevel_percent = "12"; -HALFTONEVALUES = { +_halftone_values = { "checkeredfade": "h6x6a", "etchedtransition": "o8x8", "bendaydots": "h16x16o", "smallerdots1": "h8x8o", "smallerdots2": "c7x7w", "flatstripes": "o2x2", - } - +} -class Imgradient(Pb): - def __init__(self, **kwargs): - self.tag = "imGradient" - self.directory = WORKING_DIR - self.commands = [] - self.filename = "" - self.filepath = "" - self._now = self.now() +class PbGradient(Pb): + _test_params = { + "width" : "200", + "color1" : "#ffdead", + "color2" : "blue", + "stripes" : "true", + "stripenumber" : "20", + "gradienttype" : "radial", + "stripeintensity" : "20", + "halftone" : "checkeredfade", + "percentbeveled" : "30", + "flip" : "true", + "bevel" : "flatinner", + "rotate" : "20", + "height" : "200", + "filetype" : "jpg", + "username" : "whatever" + } + def __init__(self, + width=DEFAULT_WIDTH, height=DEFAULT_HEIGHT, + color1=_default_color_1, color2=_default_color_2, + stripes=0, + stripenumber=0, + stripeintensity=0, + blurriness=0, + contrast=100, + brightness=100, + saturation=100, + hue=100, + halftone=None, + bevel=None, + percentbeveled=_default_bevel_percent, + tilt=0, rotate=0, + flip=False, flop=False, + filetype=DEFAULT_FINALFORMAT, + gradienttype="default", + username=None, + ): + super(PbGradient,self).__init__(); + self.params.set_val("width", width, value_type="int") + 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("stripenumber", stripenumber, value_type="int") + self.params.set_val("stripeintensity", stripeintensity, value_type="int") + self.params.set_val("blurriness", blurriness, value_type="int") + self.params.set_val("contrast", contrast, value_type="int") + self.params.set_val("brightness", brightness, value_type="int") + self.params.set_val("saturation", saturation, value_type="int") + self.params.set_val("hue", hue, value_type="int") - params = {} + self.params.set_val("halftone", halftone, value_type="enum") + self.params.set_val("bevel", bevel, value_type="enum") + 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']: @@ -78,23 +104,16 @@ class Imgradient(Pb): "bigouter", "dramaticflatout", "dramaticflatinner", ] - def newfilename(self): - return "{}{}-{}_{}_{}.{}".format( - self.tag, - self.params['color1'].replace('#','').replace('(','-').replace(')','-'), - self.params['color2'].replace('#','').replace('(','-').replace(')','-'), - self._now, - self.params['username'], - self.params['filetype'] or DEFAULT_FORMAT, - ) + def _filename_create(self): + _base = "{}{}-{}_{}".format( + self.__class__.__name__, + self.params.color1.replace('#','').replace('(','-').replace(')','-'), + self.params.color2.replace('#','').replace('(','-').replace(')','-'), + self._now, + ) + if self.params.username: _base += "_%s" % self.params.username + return _base + ".%s" % self.params.filetype - def _call_cmd(self, cmd): - try: - self.call_cmd(cmd) - self.commands.append(" ".join(cmd)); - except Exception: - raise Exception("Unable to call cmd {}".format(str(cmd))) - def _build_cmd(self): self.cmd = [BIN_CONVERT] @@ -108,7 +127,8 @@ class Imgradient(Pb): 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']]) - gradients = { + _gradients = { + "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']) @@ -133,10 +153,7 @@ class Imgradient(Pb): ], "noise" : ["xc:","+noise","Random","-virtual-pixel","tile"] } - if self.params["gradienttype"] in gradients: - self.cmd.extend(gradients[self.params['gradienttype']]) - else: - self.cmd.append("gradient:{}-{}".format(self.params['color1'], self.params['color2'])) + cmd += _gradients[self.params.gradienttype] if self.params['blurriness']: self.cmd.extend(["-blur","0x{}".format(self.params["blurriness"]),"-auto-level"]) @@ -193,25 +210,3 @@ class Imgradient(Pb): if self.params['bevel'] in self._bevelvalues: self._make_bevel() -if __name__ == "__main__": - TEST_FORM = { - "width" : "200", - "color1" : "#ffdead", - "color2" : "blue", - "stripes" : "true", - "stripenumber" : "20", - "gradienttype" : "radial", - "stripeintensity" : "20", - "halftone" : "checkeredfade", - "percentbeveled" : "30", - "flip" : "true", - "bevel" : "flatinner", - "rotate" : "20", - "height" : "200", - "filetype" : "jpg", - "username" : "whatever" - } - g = Gradient(**TEST_FORM); - g.create(); - print " ".join(g.commands) - print g.filename -- cgit v1.2.3-70-g09d2