summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xPb/Landscape/__init__.py7
-rwxr-xr-xPb/Pattern/__init__.py45
-rw-r--r--test.py4
3 files changed, 19 insertions, 37 deletions
diff --git a/Pb/Landscape/__init__.py b/Pb/Landscape/__init__.py
index e285fb5..34e5c88 100755
--- a/Pb/Landscape/__init__.py
+++ b/Pb/Landscape/__init__.py
@@ -12,13 +12,6 @@ class PbLandscape(Pb):
texture=None,
name=None,
):
- self._required_keys = [
- "heightmap",
- "imgdata",
- "texture",
- "name",
- ]
-
def _saveImgData(self, imgdata, filename):
try:
parts = imgdata.split(';')
diff --git a/Pb/Pattern/__init__.py b/Pb/Pattern/__init__.py
index 0018fd9..3a094dd 100755
--- a/Pb/Pattern/__init__.py
+++ b/Pb/Pattern/__init__.py
@@ -15,11 +15,11 @@ _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"}',
+ "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,
+ "image_url" : "http://i.asdf.us/im/be/PinkHijab_1425078647_reye.gif",
+ }
+ def __init__(self,
pattern_url=None,
pattern_data=None,
username=None,
@@ -27,28 +27,17 @@ class PbPattern(Pb):
):
super(PbPattern,self).__init__();
- self.params.set_val("image_url", url, value_type="img_url");
- self.params.set_val("pattern_url", url, value_type="img_url");
- self.params.set_val("pattern_data", url, value_type="json");
+ self.params.set_val("image_url", image_url, value_type="img_url");
+ self.params.set_val("pattern_url", pattern_url, value_type="img_url");
+ self.params.set_val("pattern_data", pattern_data, value_type="json");
self.params.set_val("username", username, value_type="string");
- self.basename, self._format = self._get_filename();
- #FIXME omit file extension for downloaded files
- #lets go back to this in a second
- self._pattern_file = os.path.join(WORKING_DIR, "IMPATTERNTMP_PTN{}_{}.{}".format(self.basename, self._pid, self._format)) # this
+ 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")
- self._download(self.params.image_url, self._downloaded_file)
-
- self.filename = "{}.{}".format(self.basename, self._format)
- self.filepath = os.path.join(WORKING_DIR, self.filename)
-
- if self.params['pattern_url']:
- self._download(self.params['pattern_url'], self._pattern_file)
- elif self.params['pattern_data']:
- self._from_pattern_data()
- else:
- sys.stderr.write("pattern must be supplied as json array or as a png url")
- raise ValueError;
+ 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")
def _from_pattern_data(self):
def boolToColor(boolean):
@@ -66,29 +55,29 @@ class PbPattern(Pb):
for j in range(0, len(specs['matrix'][i])):
pixels[j,i] = boolToColor(int(specs['matrix'][i][j]));
- img.save(self._pattern_file, "PNG")
+ img.save(self._pattern_filepath, "PNG")
#first step
def _make_canvas(self):
- _width, _height = self.dimensions(self._downloaded_file) # same here
+ _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_file, self.filepath, self.filepath];
+ 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._downloaded_file, "-matte", "-layers", "composite", self.filepath]
+ 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._downloaded_file, "-matte", "-compose", fuse_mode, "-layers", "composite",
+ self.params.image_url['path'], "-matte", "-compose", fuse_mode, "-layers", "composite",
self.filepath]
self._call_cmd(cmd)
diff --git a/test.py b/test.py
index c7e971a..35ca9ca 100644
--- a/test.py
+++ b/test.py
@@ -1,3 +1,3 @@
-from Pb.Grid import PbGrid
-PbGrid.example_run()
+from Pb.Pattern import PbPattern
+PbPattern.example_run()