summaryrefslogtreecommitdiff
path: root/lib/Pb/Pattern.py
diff options
context:
space:
mode:
authoryo mama <pepper@scannerjammer.com>2015-09-23 23:57:55 -0700
committeryo mama <pepper@scannerjammer.com>2015-09-23 23:57:55 -0700
commitdd7d9847767361e0dfeac23ef88bb366aa99e164 (patch)
tree9a3a29c1824885512e37a0adadb48152c3030fd2 /lib/Pb/Pattern.py
parent5c982ed500b51f5b8d911e5a5adec10ac2d31d2e (diff)
renamed modules
Diffstat (limited to 'lib/Pb/Pattern.py')
-rwxr-xr-xlib/Pb/Pattern.py86
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()