summaryrefslogtreecommitdiff
path: root/impattern/makeDither.py
diff options
context:
space:
mode:
Diffstat (limited to 'impattern/makeDither.py')
-rw-r--r--impattern/makeDither.py72
1 files changed, 0 insertions, 72 deletions
diff --git a/impattern/makeDither.py b/impattern/makeDither.py
deleted file mode 100644
index d0eb16c..0000000
--- a/impattern/makeDither.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/python
-
-import cgi
-import pbutils
-from os import getpid, path
-from subprocess import call
-
-MAIN_DIRECTORY = ""
-BIN_CONVERT = "convert"
-BIN_IDENTIFY = "identify"
-BIN_COMPOSITE = "composite"
-
-class Dither:
- def __init__(self,
- input_file_path,
- dither_file="1.png",
- username="",
- ):
-
- self.nametag = "imDither";
- if username:
- self.username = username
- else:
- self.username = "";
-
- self.pid = str(getpid())
- self.dither_file = dither_file;
- self.original_file = input_file_path;
- self.MAX_NAME_LENGTH = 10;
-
- self.image_format = self.original_file.split(".")[-1]
- try:
- self.dimensions = pbutils.image_dimensions_and_test(self.original_file);
- except Exception as E:
- pbutils.error("Corrupt image")
- self.canvas_file = self.pid+"blank_canvas.png";
- self.makeCanvas();
- self.mask_file = self.pid+"mask_file"+"."+self.image_format;
- self.makeMask();
- self.result_file = self.makeResultFilename();
- self.fuseMask();
-
- def makeResultFilename(self):
- file_base, extension = path.splitext(self.original_file)
- if len(file_base) > self.MAX_NAME_LENGTH:
- file_base = file_base[0:self.MAX_NAME_LENGTH]
- return "%s_%s_%s%s%s" % (file_base, self.username, self.nametag, pbutils.now(), extension)
-
- #first step
- def makeCanvas(self):
- call([BIN_CONVERT,"-size",self.dimensions[0]+"x"+self.dimensions[1],"canvas:transparent", self.canvas_file])
-
- #second step use the Canvas as a background
- def makeMask(self):
- #tile the dither pattern on the canvas
- call([BIN_COMPOSITE,"-tile", self.dither_file, self.canvas_file, self.mask_file])
-
- #fuse the tiled file to create a mask
- #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif
- call([BIN_CONVERT, self.mask_file, "-compose", "Dst_In", "null:", self.original_file, "-matte", "-layers", "composite", self.mask_file])
-
- #cleanup
- call(["rm", self.canvas_file])
-
- #third step
- def fuseMask(self, fuse_mode="Pin_Light"):
- call([BIN_CONVERT, self.mask_file, "null:", self.original_file, "-matte", "-compose", fuse_mode, "-layers", "composite", self.result_file])
- call(["rm", self.mask_file])
-
-
-if __name__ == "__main__":
- dither = Dither("./test.gif");