diff options
Diffstat (limited to 'lib/pb/pattern.py')
| -rwxr-xr-x | lib/pb/pattern.py | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/lib/pb/pattern.py b/lib/pb/pattern.py index 040eb18..a9ab879 100755 --- a/lib/pb/pattern.py +++ b/lib/pb/pattern.py @@ -19,23 +19,33 @@ class PbPattern(Pb): # "username" : "garfield", "image_url" : "http://i.asdf.us/im/be/PinkHijab_1425078647_reye.gif", } + example_params = { + "username":"pepper", + "pattern_data":"", + "pattern_url":"http://asdf.us/impattern/patterns/63.png", + "image_url":"http://i.asdf.us/im/b4/PbGradientwhiteblack-PbGrid_1443161086_pepper.png", + + } def __init__(self, **kwargs): super(PbPattern,self).__init__(**kwargs); _definitions = { - 'image_url': { 'type':'img_url' }, - 'pattern_url': { 'type':'img_url' }, - 'pattern_data': { 'type':'raw' }, - 'username': { 'type':'string' }, + 'image_url': { 'type':'img_url' }, + 'pattern_url': { 'type':'img_url' }, + 'pattern_data': { 'type':'json' }, + 'username': { 'type':'string' }, } self.params.definitions_import(_definitions, kwargs, classname=self.__class__.__name__); self.filename, self.filepath = self._filename_filepath_create(url=self.params.image_url['url'], extension=self.params.image_url['mimetype']) - _pattern_filename, self._pattern_filepath = self._filename_filepath_create(namepart="pattern") - - if self.params.pattern_data: self._from_pattern_data() + if self.params.pattern_data: + _pattern_filename, self._pattern_filepath = self._filename_filepath_create(namepart="pattern") + self._from_pattern_data() elif not self.params.pattern_url: self.err_warn("pattern must be supplied as json array or as a png url") + else: + self._pattern_filepath = self.params.pattern_url['path'] + + self._db_url_param = str(self.params.image_url.url) - self._db_url_param = str(self.params.image_url) def _from_pattern_data(self): def boolToColor(boolean): @@ -43,7 +53,7 @@ class PbPattern(Pb): return (0,0,0,255); else: return (255,255,255,255) - specs = json.loads(str(self.params.pattern_data)); + specs = self.params.pattern_data.value; if int(specs['width']) > 100 or int(specs['height']) > 100: raise ValueError sys.stderr.write("height and width need to be less than 100 px") @@ -51,7 +61,7 @@ class PbPattern(Pb): pixels = img.load(); for i in range(0, len(specs['matrix'])): for j in range(0, len(specs['matrix'][i])): - pixels[j,i] = boolToColor(int(specs['matrix'][i][j])); + pixels[j,i] = boolToColor(int(specs['matrix'][i][j])); img.save(self._pattern_filepath, "PNG") |
