add color alpha converter
parent
13c54e54ae
commit
d2a47365d4
|
@ -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)))
|
|
@ -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
|
Loading…
Reference in New Issue