Skip to main content

actually check in the new script!

ID
2703d44
date
2023-05-13 21:29:07+00:00
author
Alex Chan <alex@alexwlchan.net>
parent
b35d161
message
actually check in the new script!
changed files
1 file, 35 additions

Changed files

images/create_tinted_image (0) → images/create_tinted_image (852)

diff --git a/images/create_tinted_image b/images/create_tinted_image
new file mode 100755
index 0000000..e8e20cc
--- /dev/null
+++ b/images/create_tinted_image
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+"""
+This is a script for creating colour-tinted versions of greyscale images.
+"""
+
+import sys
+
+from PIL import Image
+
+
+if __name__ == "__main__":
+    try:
+        path = sys.argv[1]
+        hex_colour = sys.argv[2]
+    except IndexError:
+        sys.exit(f"Usage: {__file__} <PATH> <HEX_COLOUR>")
+
+    red = int(hex_colour[1:3], 16)
+    green = int(hex_colour[3:5], 16)
+    blue = int(hex_colour[5:7], 16)
+
+    im = Image.open(path)
+    pixels = list(im.getdata())
+    tinted_im = Image.new("RGBA", im.size)
+
+    if im.mode == "L":
+        tinted_im.putdata([(red, green, blue, 255 - p) for p in pixels])
+    else:
+        tinted_im.putdata([(red, green, blue, 255 - p[0]) for p in pixels])
+
+    name, _ = path.rsplit(".", 1)
+    out_path = f'{name}.{hex_colour.strip("#")}.png'
+
+    tinted_im.save(out_path)
+    print(out_path)