From 4ebeb643da6419835e9ac3adb731e38a8ec9c7b4 Mon Sep 17 00:00:00 2001 From: Pepper Date: Sat, 26 Sep 2015 04:14:44 -0400 Subject: reworked some more --- lib/pb/gradient.py | 186 ++++++++++++++++++++++++++--------------------------- 1 file changed, 92 insertions(+), 94 deletions(-) (limited to 'lib/pb/gradient.py') diff --git a/lib/pb/gradient.py b/lib/pb/gradient.py index 22fe561..02d57d3 100755 --- a/lib/pb/gradient.py +++ b/lib/pb/gradient.py @@ -1,18 +1,11 @@ #!/usr/bin/python2.7 -import re -import time -from subprocess import call -import simplejson as json -import sys -import os -import sha from config import * from pb import Pb _default_color_1 = "white" _default_color_2 = "black" -_default_bevel_percent = "12"; +_default_bevel_percent = "12" _halftone_values = { "checkeredfade": "h6x6a", @@ -25,67 +18,71 @@ _halftone_values = { class PbGradient(Pb): example_params = { - "width" : "200", - "color1" : "#ffdead", - "color2" : "blue", - "stripes" : "true", - "stripenumber" : "20", - "gradienttype" : "radial", - "stripeintensity" : "20", - "halftone" : "checkeredfade", - "percentbeveled" : "30", - "flip" : "true", - "bevel" : "flatinner", - "rotate" : "20", - "height" : "200", - "filetype" : "jpg", - "username" : "whatever" + "width" : "200", + "color1" : "#ffdead", + "color2" : "blue", + "stripes" : "true", + "stripenumber" : "20", + "gradienttype" : "radial", + "stripeintensity" : "20", + "halftone" : "checkeredfade", + "percentbeveled" : "30", + "flip" : "true", + "bevel" : "flatinner", + "rotate" : "20", + "height" : "200", + "filetype" : "jpg", + "username" : "whatever" } def __init__(self, **kwargs): - super(PbGradient,self).__init__(**kwargs); + super(PbGradient, self).__init__(**kwargs) _definitions = { - 'width': { 'type':'int', 'default': DEFAULT_WIDTH }, - 'height': { 'type':'int', 'default' : DEFAULT_HEIGHT }, - 'color1': { 'type':'color', 'default': _default_color_1 }, - 'color2': { 'type':'color', 'default': _default_color_2 }, - 'stripes': { 'type':'bool' }, - 'stripenumber': { 'type':'int', 'default': 0 }, - 'stripeintensity': { 'type':'int', 'default': 0 }, - 'blurriness': { 'type':'int', 'default': 0 }, - 'contrast': { 'type':'int', 'default': 100 }, - 'brightness': { 'type':'int', 'default': 100 }, - 'saturation': { 'type':'int', 'default': 100 }, - 'hue': { 'type':'int', 'default': 100 }, - 'halftone': { 'type':'enum', 'enum_values' : [ - 'checkeredfade', 'etchedtransition', 'bendaydots', - 'smallerdots1', 'smallerdots2', 'flatstripes', - ] }, - 'bevel': { 'type':'enum', 'enum_values' : [ - 'flatout', 'flatinner', 'evenlyframed', 'biginner', - 'bigouter', 'dramaticflatout', 'dramaticflatinner', - ] }, - 'percentbeveled': { 'type':'int', 'default': _default_bevel_percent }, - 'tilt': { 'type':'int' }, - 'rotate': { 'type':'int' }, - 'flip': { 'type':'bool' }, - 'flop': { 'type':'bool' }, - 'filetype': { 'type':'enum', 'enum_values' : OUTPUT_IMAGE_TYPES, 'default': DEFAULT_FINALFORMAT }, - 'gradienttype': { 'type':'enum', 'enum_values' : [ - 'default', 'canvas', 'radial', 'colorspace', - 'mirrored', 'plasmawash', 'gradientwash', 'noise' - ], 'default': 'default' }, - 'username': { 'type':'string' } + 'width': {'type':'int', 'default': DEFAULT_WIDTH}, + 'height': {'type':'int', 'default' : DEFAULT_HEIGHT}, + 'color1': {'type':'color', 'default': _default_color_1}, + 'color2': {'type':'color', 'default': _default_color_2}, + 'stripes': {'type':'bool'}, + 'stripenumber': {'type':'int', 'default': 0}, + 'stripeintensity': {'type':'int', 'default': 0}, + 'blurriness': {'type':'int', 'default': 0}, + 'contrast': {'type':'int', 'default': 100}, + 'brightness': {'type':'int', 'default': 100}, + 'saturation': {'type':'int', 'default': 100}, + 'hue': {'type':'int', 'default': 100}, + 'halftone': {'type':'enum', 'enum_values' : [ + 'checkeredfade', 'etchedtransition', 'bendaydots', + 'smallerdots1', 'smallerdots2', 'flatstripes', + ]}, + 'bevel': {'type':'enum', 'enum_values' : [ + 'flatout', 'flatinner', 'evenlyframed', 'biginner', + 'bigouter', 'dramaticflatout', 'dramaticflatinner', + ]}, + 'percentbeveled': {'type':'int', 'default': _default_bevel_percent}, + 'tilt': {'type':'int'}, + 'rotate': {'type':'int'}, + 'flip': {'type':'bool'}, + 'flop': {'type':'bool'}, + 'filetype': { + 'type':'enum', + 'enum_values':OUTPUT_IMAGE_TYPES, + 'default': DEFAULT_FINALFORMAT + }, + 'gradienttype': {'type':'enum', 'enum_values':[ + 'gradient', 'canvas', 'radial', 'colorspace', + 'mirrored', 'plasmawash', 'gradientwash', 'noise' + ], 'default': 'gradient'}, + 'username': {'type':'string'} } - self.params.definitions_import(_definitions, kwargs, classname=self.__class__.__name__); + self.params.definitions_import(_definitions, kwargs, classname=self.__class__.__name__) self.filename, self.filepath = self._filename_filepath_create() - def _filename_create(self, **kwargs): + def _filename_create(self): _base = "{}{}-{}_{}".format( - self.__class__.__name__, - str(self.params.color1).replace('#','').replace('(','-').replace(')','-'), - str(self.params.color2).replace('#','').replace('(','-').replace(')','-'), - self._now, + self.__class__.__name__, + str(self.params.color1).replace('#', '').replace('(', '-').replace(')', '-'), + str(self.params.color2).replace('#', '').replace('(', '-').replace(')', '-'), + self._now, ) if self.params.username: _base += "_%s" % self.params.username return _base + ".%s" % self.params.filetype @@ -95,20 +92,20 @@ class PbGradient(Pb): cmd = [BIN_CONVERT] cmd.extend([ '-size', - "{}x{}".format(self.params.width,self.params.height) + "{}x{}".format(self.params.width, self.params.height) ]) - - if self.params.rotate: cmd.extend(["-rotate", self.params.rotate]) - if self.params.tilt: cmd.extend(["-distort","SRT",self.params.tilt]) + + if self.params.rotate: cmd.extend(["-rotate", self.params.rotate]) + if self.params.tilt: cmd.extend(["-distort", "SRT", self.params.tilt]) if self.params.flip == "true": cmd.append("-flip") if self.params.flop == "true": cmd.append("-flop") if self.params.contrast: cmd.extend(["-contrast-stretch", self.params.contrast]) _gradients = { - "default" : "gradient:{}-{}".format(self.params.color1, self.params.color2), + "gradient" : ["gradient:{}-{}".format(self.params.color1, self.params.color2)], "canvas" : ["canvas:{}".format(self.params.color1)], "radial" : [ - "radial-gradient:{}-{}".format( self.params.color1, self.params.color2) - ], + "radial-gradient:{}-{}".format(self.params.color1, self.params.color2) + ], "colorspace" : [ "-colorspace", "Gray", @@ -116,7 +113,7 @@ class PbGradient(Pb): ], "mirrored" : [ "plasma:{}-{}".format(self.params.color1, self.params.color2), - "\(","+clone","-flop","\)", + "\(", "+clone", "-flop", "\)", "append" ], "plasmawash" : [ @@ -125,34 +122,35 @@ class PbGradient(Pb): ], "gradientwash" : [ "gradient:{}-{}".format(self.params.color1, self.params.color2), - "-set","colorspace","HSB" + "-set", "colorspace", "HSB" ], "noise" : ["xc:","+noise","Random","-virtual-pixel","tile"] } cmd += _gradients[str(self.params.gradienttype)] - - if self.params.blurriness: - cmd.extend(["-blur","0x{}".format(self.params.blurriness),"-auto-level"]) - + + if self.params.blurriness: + cmd.extend(["-blur", "0x{}".format(self.params.blurriness), "-auto-level"]) + if self.params.stripes == "true" and len(self.params.stripenumber): - cmd.extend(["-function","Sinusoid"]) - if self.params.stripeintensity: - cmd.append("{},{}".format(self.params.stripenumber,self.params.stripeintensity)) + cmd.extend(["-function", "Sinusoid"]) + if self.params.stripeintensity: + cmd.append("{},{}".format(self.params.stripenumber, self.params.stripeintensity)) else: cmd.append(self.params.stripenumber) - if str(self.params.halftone) in _halftone_values: + if str(self.params.halftone) in _halftone_values: cmd.extend([ - "-ordered-dither", + "-ordered-dither", _halftone_values[str(self.params.halftone)] ]) - cmd += [ - '-modulate', + cmd += [ + '-modulate', "{},{},{}".format( - self.params.brightness or "100", - self.params.saturation or "100", - self.params.hue or "100") + self.params.brightness or "100", + self.params.saturation or "100", + self.params.hue or "100" + ) ] - cmd.append(self.filepath); + cmd.append(self.filepath) self._call_cmd(cmd) if self.params.bevel: self._make_bevel() @@ -163,19 +161,19 @@ class PbGradient(Pb): else: bevpercentval = str(int(self.params.percentbeveled)*0.005*int(w)) return { - "flatout": ["-s",bevpercentval,"-m","outer"], - "flatinner": ["-s",bevpercentval,"-m","inner"], - "evenlyframed": ["-s ",bevpercentval,"-m", "split"], - "biginner": ["-s",bevpercentval,"-m","outer","-c","50","-b","red","-a","25"], - "bigouter": ["-s",bevpercentval,"-m","split","-c","50","-b","red","-a","25"], - "dramaticflatout": ["-s",bevpercentval,"-m","outer","-a","25","-b","blue"], - "dramaticflatinner": ["-s",bevpercentval,"-m","outer","-a","25","-b","blue"], + "flatout": ["-s", bevpercentval, "-m", "outer"], + "flatinner": ["-s", bevpercentval, "-m", "inner"], + "evenlyframed": ["-s ", bevpercentval, "-m", "split"], + "biginner": ["-s", bevpercentval, "-m", "outer", "-c", "50", "-b", "red", "-a", "25"], + "bigouter": ["-s", bevpercentval, "-m", "split", "-c", "50", "-b", "red", "-a", "25"], + "dramaticflatout": ["-s", bevpercentval, "-m", "outer", "-a", "25", "-b", "blue"], + "dramaticflatinner": ["-s", bevpercentval, "-m", "outer", "-a", "25", "-b", "blue"], }[str(self.params.bevel)] def _make_bevel(self): cmd = [BEVELBORDER] - cmd += self._get_bevelvalue() - cmd += [ self.filepath, self.filepath] + cmd += self._get_bevelvalue() + cmd += [self.filepath, self.filepath] self._call_cmd(cmd) def create(self): -- cgit v1.2.3-70-g09d2