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)