Add command line arguments; main() now tiles.
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Tue, 4 Jun 2019 21:09:15 +0000 (23:09 +0200)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Tue, 4 Jun 2019 21:09:15 +0000 (23:09 +0200)
gimp_passport.py
test_gimp_passport.py

index 540d00f..3e19cc9 100644 (file)
@@ -63,17 +63,23 @@ def tile(img: Image, paper_width_mm: float, paper_height_mm: float, margin_mm: f
     return paper
 
 
-def main(source_image: str, dest_image: str):
+def main(paper_width_mm: float, paper_height_mm: float, paper_margin_mm: float,
+         photo_width_mm: float, photo_height_mm: float, source_image: str, dest_image: str):
     img = Image.open(source_image)
-    pic = make_passport(img, 0.75, 35., 45.)
-    pic.save(dest_image, dpi=pic.info['dpi'])
+    photo = make_passport(img, 0.75, photo_width_mm, photo_height_mm)
+    paper = tile(photo, paper_width_mm, paper_height_mm, paper_margin_mm)
+    paper.save(dest_image, dpi=paper.info['dpi'])
 
 
 if __name__ == '__main__':
     description = 'Convert image with alpha mask marking the face to passport image.'
     parser = argparse.ArgumentParser(description=description)
+    parser.add_argument('--paper-width', type=float, default=150., help='paper width in mm (default: 150)')
+    parser.add_argument('--paper-height', type=float, default=100., help='paper height in mm (default: 100)')
+    parser.add_argument('--paper-margin', type=float, default=4., help='paper margin in mm (default: 4)')
+    parser.add_argument('--photo-width', type=float, default=35., help='passport photo width in mm (default: 35)')
+    parser.add_argument('--photo-height', type=float, default=45., help='passport photo height in mm (default: 45)')
     parser.add_argument('source', help='sourse image')
     parser.add_argument('dest', help='destination image')
     args = parser.parse_args()
-    main(args.source, args.dest)
-
+    main(args.paper_width, args.paper_height, args.paper_margin, args.photo_width, args.photo_height, args.source, args.dest)
index 8e262b3..b9b4b5f 100644 (file)
@@ -25,5 +25,5 @@ class TestMakePassport(unittest.TestCase):
         dest = 'test_image_result.png'
         if os.path.exists(dest):
             os.remove(dest)
-        main(source, dest)
+        main(35., 45., 4., 100., 150., source, dest)
         self.assertTrue(os.path.exists(dest))