Dodanie skryptu do przycinania obrazków.
authorzuber <marek@stepniowski.com>
Wed, 16 Sep 2009 11:23:30 +0000 (13:23 +0200)
committerzuber <marek@stepniowski.com>
Wed, 16 Sep 2009 11:23:30 +0000 (13:23 +0200)
crop.py [new file with mode: 0755]

diff --git a/crop.py b/crop.py
new file mode 100755 (executable)
index 0000000..a7d8384
--- /dev/null
+++ b/crop.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+import sys
+import os
+from os.path import splitext, dirname, basename, realpath
+from PIL import Image
+
+
+def crop(image, top=0, right=0, bottom=0, left=0):
+    width, height = image.size
+    if top < 1:
+        top = int(height * top)
+    if right < 1:
+        right = int(width * right)
+    if bottom < 1:
+        bottom = int(height * bottom)
+    if left < 1:
+        left = int(width * left)
+    
+    bounds = (int(left), int(top), int(width - right), int(height - bottom))
+    image = image.crop(bounds)
+    image.load()
+    return image
+
+
+output_dir = realpath(os.getcwd()) + '/output'
+bounds = [float(i) for i in sys.argv[1].split(':')]
+
+for file_name in sys.argv[2:]:
+    base_name, ext = splitext(file_name)
+    try:
+        image = Image.open(file_name)
+    except IOError, e:
+        sys.stderr.write('\nerror:%s:%s\n' % (file_name, e.message))
+        continue
+    
+    image = crop(image, *bounds)
+    image.save(output_dir + '/' + basename(file_name))
\ No newline at end of file