summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Params/__init__.py19
-rwxr-xr-xPb/Grid/__init__.py55
-rw-r--r--test.py4
3 files changed, 44 insertions, 34 deletions
diff --git a/Params/__init__.py b/Params/__init__.py
index dc8fbfa..7a1c31c 100644
--- a/Params/__init__.py
+++ b/Params/__init__.py
@@ -54,15 +54,16 @@ class Params(object):
elif value_type == "string":
value = self.sanitize(str(value))
elif value_type == "img_url":
- _filename = self._filename_temporary(key)
- _path = os.path.join(self._working_dir, _filename)
- self._image_download(value, _path)
- _mimetype = self._image_mimetype(_path)
- value = {
- 'url': value,
- 'path': _path,
- 'mimetype' : _mimetype
- }
+ if value:
+ _filename = self._filename_temporary(key)
+ _path = os.path.join(self._working_dir, _filename)
+ self._image_download(value, _path)
+ _mimetype = self._image_mimetype(_path)
+ value = {
+ 'url': value,
+ 'path': _path,
+ 'mimetype' : _mimetype
+ }
elif value_type == "enum":
if value not in enum_values:
raise ValueError
diff --git a/Pb/Grid/__init__.py b/Pb/Grid/__init__.py
index d03ee10..4cc31ee 100755
--- a/Pb/Grid/__init__.py
+++ b/Pb/Grid/__init__.py
@@ -3,8 +3,8 @@ import re
import os
import simplejson as json
import random
-from Config import DEFAULT_FINALFORMAT, DEFAULT_HEIGHT, DEFAULT_WIDTH, WORKING_DIR
-from Config import THREEDROTATE, GRID
+from Config import DEFAULT_FINALFORMAT, DEFAULT_HEIGHT, DEFAULT_WIDTH, WORKING_DIR, OUTPUT_IMAGE_TYPES
+from Config import THREEDROTATE, GRID, BIN_CONVERT, BIN_COMPOSITE
import tempfile
from Pb import Pb
@@ -24,31 +24,31 @@ class PbGrid(Pb):
def __init__(self,
width=None,
height=None,
- linethickness=None,
- opacity=None,
- linecolor=None,
- spacing=None,
- vlines=None,
- hlines=None,
- shadow=None,
+ linethickness=1,
+ opacity=1.0,
+ linecolor="whitesmoke",
+ spacing=10,
+ vlines=False,
+ hlines=False,
+ shadow=False,
bgimage=None,
- bgcolor=None,
+ bgcolor="transparent",
imageinstead=None,
- planebgcolor=None,
+ planebgcolor="transparent",
planebgimage=None,
- swing=None,
- tilt=None,
- roll=None,
- zoom=None,
- skycolor=None,
- transition=None,
- trim=None,
+ swing=False,
+ tilt=False,
+ roll=False,
+ zoom=0,
+ skycolor="transparent",
+ transition="background",
+ trim=False,
finalformat=DEFAULT_FINALFORMAT,
- username=None
+ username=""
):
super(PbGrid,self).__init__();
- self.params.set_val("width", width, value_type="int")
- self.params.set_val("height", height, value_type="int")
+ self.params.set_val("width", width or 0, value_type="int")
+ self.params.set_val("height", height or 0, value_type="int")
self.params.set_val("linethickness", linethickness, value_type="int")
self.params.set_val("opacity", opacity, value_type="float")
self.params.set_val("linecolor", linecolor, value_type="color")
@@ -67,10 +67,17 @@ class PbGrid(Pb):
self.params.set_val("roll", roll, value_type="int")
self.params.set_val("zoom", zoom, value_type="int")
self.params.set_val("skycolor", skycolor, value_type="color")
- self.params.set_val("transition", transition, value_type="enum", enum_values=[]) #FIXME
+ self.params.set_val("transition", transition, value_type="enum", enum_values=["background", "dither", "edge", "mirror", "random", "tile"]) #FIXME
self.params.set_val("trim", trim, value_type="bool")
- self.params.set_val("finalformat", finalformat, value_type="enum", enum_values=_file...)# FIXME
+ self.params.set_val("finalformat", finalformat, value_type="enum", enum_values=OUTPUT_IMAGE_TYPES)# FIXME
self.params.set_val("username", username, value_type="string");
+ if self.params.imageinstead:
+ self.filename, self.filepath = self._filename_filepath_create(url=self.params.imageinstead['url'], extension=self.params.finalformat)
+ elif self.params.planebgimage:
+ self.filename, self.filepath = self._filename_filepath_create(url=self.params.planebgimage['url'], extension=self.params.finalformat)
+ else:
+ self.filename, self.filepath = self._filename_filepath_create(extension=self.params.finalformat)
+
#FIXME choose gif frame
#makes a canvas file...step 1 (if not bgimage)
@@ -140,6 +147,8 @@ class PbGrid(Pb):
self._call_cmd(cmd)
def _prepare_gridimage(self, image):
+ if image['mimetype'] == 'gif':
+ _frame = self._choose_gif_frame(image['path'])
if image['mimetype'] != 'png':
cmd = [BIN_CONVERT, image['path'], self.filepath]
else:
diff --git a/test.py b/test.py
index df273cf..c7e971a 100644
--- a/test.py
+++ b/test.py
@@ -1,3 +1,3 @@
-from Pb.Generate import PbGenerate
-PbGenerate.example_run()
+from Pb.Grid import PbGrid
+PbGrid.example_run()