diff options
| -rwxr-xr-x | Pb/Break/__init__.py | 25 | ||||
| -rwxr-xr-x | Pb/Gradient/__init__.py | 151 | ||||
| -rw-r--r-- | Pb/__init__.py | 8 |
3 files changed, 92 insertions, 92 deletions
diff --git a/Pb/Break/__init__.py b/Pb/Break/__init__.py index 5e429e9..9f5dba5 100755 --- a/Pb/Break/__init__.py +++ b/Pb/Break/__init__.py @@ -18,6 +18,15 @@ _header_offset = 2000 _default_breakmode = "subtle" class PbBreak(Pb): #FIXME in db gallery + _test_params = { + "url" : "http://i.asdf.us/im/de/HolyMountain2_1322275112_seamonkey.gif", + "breaktype" : "RGB_WASH", + "finalformat" : "png", + "breakmode" : "extreme", + "breakangle" : "10", + "username" : "donkey", + "expanded" : "false" + } def __init__(self, url=None, breaktype=None, @@ -26,10 +35,11 @@ class PbBreak(Pb): #FIXME in db gallery breakangle=None, username=None, expanded=None, - ): + ): super(PbBreak,self).__init__(); + self.params.set_val("username", username, value_type="string"); self.params.set_val("breaktype", self._get_breaktype(breaktype), value_type="string"); self.params.set_val("breakmode", breakmode, value_type="enum", enum_values=["subtle", "extreme", "gradual"]) self.params.set_val("breakangle", breakangle, value_type="float") @@ -162,16 +172,3 @@ class PbBreak(Pb): #FIXME in db gallery self._final_conversion() self._cleanup() - @classmethod - def test(cls): - TEST_PARAMS = { - "url" : "http://i.asdf.us/im/de/HolyMountain2_1322275112_seamonkey.gif", - "breaktype" : "RGB_WASH", - "finalformat" : "png", - "breakmode" : "extreme", - "breakangle" : "10", - "username" : "donkey", - "expanded" : "false" - } - b = cls(**TEST_PARAMS) - b.create(); 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
diff --git a/Pb/__init__.py b/Pb/__init__.py index 6485e86..af4558f 100644 --- a/Pb/__init__.py +++ b/Pb/__init__.py @@ -106,4 +106,12 @@ class Pb(object): def err_fatal(self, s): sys.stderr.write("ERROR[FATAL]:{} - {}\n".format(self.__class__.__name__, s)) sys.exit(1); + + @classmethod + def test(cls, test_params=None): + test_params = test_params or cls._test_params + if not test_params: + raise AttributeError ("Must supply test params to test %s" % cls.__name__) + b = cls(**test_params) + b.create(); |
