diff options
Diffstat (limited to 'Pb/Gradient/__init__.py')
| -rwxr-xr-x | Pb/Gradient/__init__.py | 135 |
1 files changed, 62 insertions, 73 deletions
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()
|
