add color alpha converter

Florian Schrofner 2022-04-30 22:32:50 +02:00
parent 13c54e54ae
commit d2a47365d4
2 changed files with 56 additions and 0 deletions

47
color-alpha-converter/cac.clj Executable file
View File

@ -0,0 +1,47 @@
#!/usr/bin/env bb
(require '[clojure.tools.cli :refer [parse-opts]])
(use '[clojure.string])
(require '[clojure.math :refer [round]])
(def cli-options
[["-i" "--inverse" "Inverses the conversion so the value is converted to a percentage from a given hex number."
:id :inverse
:default false]])
(def step-size 2.55M)
(def parsed-params (parse-opts *command-line-args* cli-options))
(def options (:options parsed-params))
(def value (first (:arguments parsed-params)))
(defn pad-with-zero
[length string]
(as-> string $
(count $)
(- length $)
(take $ (repeat "0"))
(concat $ string)
(join $)))
(defn to-hex
[value]
(->> value
(Integer/parseInt)
(* step-size)
(round)
(int)
(format "%x")
(pad-with-zero 2)))
(defn from-hex
[value]
(as-> value $
(Integer/parseInt $ 16)
(with-precision 2(/ $ step-size))
(round $)
(int $)
(str $)))
(if (:inverse options)
(print (from-hex value))
(print (to-hex value)))

View File

@ -0,0 +1,9 @@
# Color Alpha Converter
Converts the given alpha in percent to a hex value usable by Android.
You can use the `-i` flag to inverse the conversion and get the alpha percentage for a hex value.
## Example Usage
./cac.clj 50
./cac.clj 80
./cac.clj -i ff
./cac.clj -i bf