summaryrefslogtreecommitdiff
path: root/Pb/Gradient/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'Pb/Gradient/__init__.py')
-rwxr-xr-xPb/Gradient/__init__.py151
1 files changed, 73 insertions, 78 deletions
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