From 77c7421fcea70b14411ff9ae9cf0bb9484f3246a Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sat, 31 Mar 2018 13:17:02 -0400 Subject: Add hex output to scheme --- bin/scheme.c | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/bin/scheme.c b/bin/scheme.c index e9becb73..153eac21 100644 --- a/bin/scheme.c +++ b/bin/scheme.c @@ -23,6 +23,7 @@ #include #include #include +#include #include struct Hsv { @@ -65,7 +66,7 @@ static void pngChunk(const char *type, uint32_t size) { } enum { NONE, SUB, UP, AVERAGE, PAETH }; -static void png(const struct Hsv *hsv, uint8_t len) { +static void png(const struct Hsv *scheme, uint8_t len) { uint32_t swatchWidth = 64; uint32_t swatchHeight = 64; uint32_t columns = 8; @@ -83,7 +84,7 @@ static void png(const struct Hsv *hsv, uint8_t len) { pngChunk("PLTE", 3 * len); for (uint8_t i = 0; i < len; ++i) { - struct Rgb rgb = toRgb(hsv[i]); + struct Rgb rgb = toRgb(scheme[i]); pngWrite(&rgb, 3); } pngInt(crc); @@ -112,8 +113,26 @@ static void png(const struct Hsv *hsv, uint8_t len) { pngInt(crc); } -int main() { - struct Hsv scheme[16] = { +static void hex(const struct Hsv *scheme, uint8_t len) { + for (uint8_t i = 0; i < len; ++i) { + struct Rgb rgb = toRgb(scheme[i]); + printf("%02x%02x%02x\n", rgb.r, rgb.g, rgb.b); + } +} + +int main(int argc, char *argv[]) { + enum { HEX, PNG } output = HEX; + + int opt; + while (0 < (opt = getopt(argc, argv, "gx"))) { + switch (opt) { + case 'g': output = PNG; break; + case 'x': output = HEX; break; + default: return EX_USAGE; + } + } + + struct Hsv scheme[] = { { 0.0, 1.0, 1.0 }, { 45.0, 1.0, 1.0 }, { 90.0, 1.0, 1.0 }, @@ -131,6 +150,12 @@ int main() { { 270.0, 0.5, 1.0 }, { 315.0, 0.5, 1.0 }, }; - png(scheme, 16); + size_t len = sizeof(scheme) / sizeof(scheme[0]); + + switch (output) { + case HEX: hex(scheme, len); break; + case PNG: png(scheme, len); break; + } + return EX_OK; } -- cgit 1.4.1 id=b0a0c2316d7c8b3e19fed0fc244e7b6bd544c6ea&follow=1'>1sh-test.1 (unfollow)
Commit message (Expand)Author
2020-12-05Disable mouse in htopJune McEnroe
2020-12-03Note lack of macro expansions in Q(...)June McEnroe
2020-12-02Fix missing "to" in "hot tips"June McEnroe
2020-12-02Publish "hot tips"June McEnroe
2020-11-26Publish "Inability"June McEnroe
2020-11-26Render content into atom feedJune McEnroe
2020-11-26Update plan with different things I won't doJune McEnroe
2020-11-19Add "Come On Petunia"June McEnroe
2020-11-13Add x4 to LESSJune McEnroe
2020-11-04Remove modified sensitivity settingsJune McEnroe
2020-10-29Remove editJune McEnroe
2020-10-27Switch gr alias back to git rebaseJune McEnroe
2020-10-27Allow cd host: to cd to same path over sshJune McEnroe
2020-10-27Use SendEnv for cd host:pathJune McEnroe
2020-10-27Allow cd host:path over sshJune McEnroe
2020-10-07Use mandoc -T utf8 for text.June McEnroe
2020-09-20Add The Awakened KingdomJune McEnroe
2020-09-12Move /opt/local back, cheat port select to use system manJune McEnroe
2020-09-12Move /opt/local behind /usr againJune McEnroe
2020-09-12Enable toc in cgit renderings of man pagesJune McEnroe
2020-09-11Install mandoc on macOSJune McEnroe
2020-09-11Rewrite install script yet againJune McEnroe
2020-09-11Remove NetBSD from install scriptJune McEnroe
2020-09-11Use MacPorts rather than pkgsrcJune McEnroe
2020-09-11Add debian VM name to sshJune McEnroe
2020-09-11Add influencer tweetJune McEnroe
2020-09-10Add The Kingdom of GodsJune McEnroe
2020-09-07Add SunglassesJune McEnroe
2020-09-06Add Between the BreathsJune McEnroe
2020-09-04Open /dev/tty in nudgeJune McEnroe
2020-09-04Add nudgeJune McEnroe
2020-09-03Build fbclock with -lzJune McEnroe
2020-08-29Add tweets from retweetsJune McEnroe