diff options
| -rw-r--r-- | Params/__init__.py | 19 | ||||
| -rwxr-xr-x | Pb/Grid/__init__.py | 55 | ||||
| -rw-r--r-- | test.py | 4 |
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: @@ -1,3 +1,3 @@ -from Pb.Generate import PbGenerate -PbGenerate.example_run() +from Pb.Grid import PbGrid +PbGrid.example_run() |
