summaryrefslogtreecommitdiff
path: root/lib/pb/pattern.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pb/pattern.py')
-rwxr-xr-xlib/pb/pattern.py30
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")