diff options
| author | yo mama <pepper@scannerjammer.com> | 2015-09-23 23:57:55 -0700 |
|---|---|---|
| committer | yo mama <pepper@scannerjammer.com> | 2015-09-23 23:57:55 -0700 |
| commit | dd7d9847767361e0dfeac23ef88bb366aa99e164 (patch) | |
| tree | 9a3a29c1824885512e37a0adadb48152c3030fd2 /lib/Pb/Pattern.py | |
| parent | 5c982ed500b51f5b8d911e5a5adec10ac2d31d2e (diff) | |
renamed modules
Diffstat (limited to 'lib/Pb/Pattern.py')
| -rwxr-xr-x | lib/Pb/Pattern.py | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/lib/Pb/Pattern.py b/lib/Pb/Pattern.py deleted file mode 100755 index 6ae6eb7..0000000 --- a/lib/Pb/Pattern.py +++ /dev/null @@ -1,86 +0,0 @@ -import os -import sys -import random -import re -import urllib -from config import * -from Pb import Pb - -import simplejson as json -from PIL import Image -import uuid - -_fuse_mode="Pin_Light" - -class PbPattern(Pb): - example_params = { - # "pattern_url" : "http://asdf.us/impattern/patterns/1.png", - "pattern_data" : '{"matrix":[["0","0","0","0","0","1","0","0","0","0"],["0","0","0","0","1","1","1","0","0","0"],["0","0","1","1","1","0","1","0","0","0"],["0","1","1","0","0","0","0","0","0","0"],["0","1","0","0","1","0","0","0","0","0"],["0","1","0","0","1","0","0","0","1","0"],["0","1","0","0","1","1","0","0","1","0"],["0","1","0","0","0","1","1","1","1","0"],["0","1","1","1","1","0","0","0","0","0"],["0","0","0","0","1","0","0","0","0","0"]],"width":"10","height":"10"}', - # "username" : "garfield", - "image_url" : "http://i.asdf.us/im/be/PinkHijab_1425078647_reye.gif", - } - 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' }, - } - 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() - elif not self.params.pattern_url: - self.err_warn("pattern must be supplied as json array or as a png url") - - self._db_url_param = str(self.params.image_url) - - def _from_pattern_data(self): - def boolToColor(boolean): - if boolean: - return (0,0,0,255); - else: - return (255,255,255,255) - specs = json.loads(str(self.params.pattern_data)); - 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") - img = Image.new('RGBA', (int(specs['width']), int(specs['height']))); - 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])); - - img.save(self._pattern_filepath, "PNG") - - #first step - def _make_canvas(self): - _width, _height = self._dimensions(self.params.image_url['path']) # same here - cmd = [BIN_CONVERT, "-size", _width + "x" + _height, "canvas:transparent", self.filepath] - self._call_cmd(cmd) - - #second step use the Canvas as a background - def _make_mask(self): - #tile the pattern pattern on the canvas - cmd = [BIN_COMPOSITE,"-tile", self._pattern_filepath, self.filepath, self.filepath]; - self._call_cmd(cmd) - #fuse the tiled file to create a mask - #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif - cmd = [BIN_CONVERT, self.filepath, "-compose", "Dst_In", "null:", - self.params.image_url['path'], "-matte", "-layers", "composite", self.filepath] - self._call_cmd(cmd) - - #third step - def _fuse_mask(self, fuse_mode=_fuse_mode): - cmd = [BIN_CONVERT, "-dispose", "2", self.filepath, "null:", - self.params.image_url['path'], "-matte", "-compose", fuse_mode, "-layers", "composite", - self.filepath] - self._call_cmd(cmd) - - def create(self): - self._make_canvas(); - self._make_mask() - self._fuse_mask(); - super(PbPattern, self).create() |
