pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/color/examples_test.go (about) 1 package color 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2022 ESSENTIAL KAOS // 6 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "fmt" 12 ) 13 14 // ////////////////////////////////////////////////////////////////////////////////// // 15 16 func ExampleParse() { 17 fmt.Println(Parse("#ff6347")) 18 fmt.Println(Parse("#B8F")) 19 fmt.Println(Parse("#FF3B21A6")) 20 fmt.Println(Parse("mintcream")) 21 22 // Output: 23 // Hex{#FF6347} <nil> 24 // Hex{#BB88FF} <nil> 25 // Hex{#FF3B21A6} <nil> 26 // Hex{#F5FFFA} <nil> 27 } 28 29 func ExampleRGB2Hex() { 30 fmt.Printf("%s\n", RGB2Hex(RGB{127, 25, 75}).ToWeb(true)) 31 32 // Output: #7F194B 33 } 34 35 func ExampleHex2RGB() { 36 fmt.Printf("%s\n", Hex2RGB(0x7F194B)) 37 38 // Output: RGB{R:127 G:25 B:75} 39 } 40 41 func ExampleHex2RGBA() { 42 fmt.Printf("%s\n", Hex2RGBA(0x7F194BCC)) 43 44 // Output: RGBA{R:127 G:25 B:75 A:0.80} 45 } 46 47 func ExampleRGBA2Hex() { 48 c := RGBA2Hex(RGBA{127, 25, 75, 204}) 49 50 fmt.Printf("%s\n", c.ToWeb(true)) 51 52 // Output: #7F194BCC 53 } 54 55 func ExampleRGB2Term() { 56 c := RGB{255, 0, 0} 57 58 fmt.Printf("%s → \\e[38;5;%dm\n", c, RGB2Term(c)) 59 60 // Output: RGB{R:255 G:0 B:0} → \e[38;5;196m 61 } 62 63 func ExampleRGB2CMYK() { 64 fmt.Printf("%s\n", RGB2CMYK(RGB{127, 25, 75})) 65 66 // Output: CMYK{C:0% M:80% Y:41% K:50%} 67 } 68 69 func ExampleCMYK2RGB() { 70 fmt.Printf("%s\n", CMYK2RGB(CMYK{0, 0.8, 0.41, 0.5})) 71 72 // Output: RGB{R:127 G:25 B:75} 73 } 74 75 func ExampleRGB2HSV() { 76 fmt.Printf("%s\n", RGB2HSV(RGB{127, 25, 75})) 77 78 // Output: HSV{H:331° S:80% V:50%} 79 } 80 81 func ExampleHSV2RGB() { 82 c := HSV2RGB(HSV{331.0 / 360.0, 80.0 / 100.0, 50.0 / 100.0}) 83 84 fmt.Printf("%s\n", c) 85 86 // Output: RGB{R:127 G:25 B:74} 87 } 88 89 func ExampleRGB2HSL() { 90 fmt.Printf("%s\n", RGB2HSL(RGB{127, 25, 75})) 91 92 // Output: HSL{H:331° S:67% L:30%} 93 } 94 95 func ExampleHSL2RGB() { 96 c := HSL2RGB(HSL{331.0 / 360.0, 67.0 / 100.0, 30.0 / 100.0}) 97 98 fmt.Printf("%s\n", c) 99 100 // Output: RGB{R:127 G:25 B:74} 101 } 102 103 func ExampleHUE2RGB() { 104 hue := HUE2RGB(0.3, 0.12, 0.56) 105 106 fmt.Printf("Hue: %.4f\n", hue) 107 108 // Output: Hue: 0.1848 109 } 110 111 func ExampleLuminance() { 112 fmt.Printf("Lum: %.7f\n", Luminance(RGB{135, 85, 189})) 113 114 // Output: Lum: 0.1532202 115 } 116 117 func ExampleContrast() { 118 c := Contrast(0x222222, 0x40abf7) 119 120 fmt.Printf("ratio: %.2f:1\n", c) 121 122 // Output: ratio: 6.35:1 123 } 124 125 // ////////////////////////////////////////////////////////////////////////////////// // 126 127 func ExampleRGB_ToHex() { 128 fmt.Printf("%s\n", RGB{127, 25, 75}.ToHex().ToWeb(true)) 129 130 // Output: #7F194B 131 } 132 133 func ExampleRGB_ToCMYK() { 134 fmt.Printf("%s\n", RGB{127, 25, 75}.ToCMYK()) 135 136 // Output: CMYK{C:0% M:80% Y:41% K:50%} 137 } 138 139 func ExampleRGB_ToHSV() { 140 fmt.Printf("%s\n", RGB{127, 25, 75}.ToHSV()) 141 142 // Output: HSV{H:331° S:80% V:50%} 143 } 144 145 func ExampleRGB_ToHSL() { 146 fmt.Printf("%s\n", RGB{127, 25, 75}.ToHSL()) 147 148 // Output: HSL{H:331° S:67% L:30%} 149 } 150 151 func ExampleRGB_ToTerm() { 152 c := RGB{255, 0, 0} 153 154 fmt.Printf("%s → \\e[38;5;%dm\n", c, c.ToTerm()) 155 156 // Output: RGB{R:255 G:0 B:0} → \e[38;5;196m 157 } 158 159 func ExampleRGBA_ToHex() { 160 c := RGBA{127, 25, 75, 204}.ToHex() 161 162 fmt.Printf("%s\n", c.ToWeb(true)) 163 164 // Output: #7F194BCC 165 } 166 167 func ExampleCMYK_ToRGB() { 168 fmt.Printf("%s\n", CMYK{0, 0.8, 0.41, 0.5}.ToRGB()) 169 170 // Output: RGB{R:127 G:25 B:75} 171 } 172 173 func ExampleHSV_ToRGB() { 174 c := HSV{331.0 / 360.0, 80.0 / 100.0, 50.0 / 100.0}.ToRGB() 175 176 fmt.Printf("%s\n", c) 177 178 // Output: RGB{R:127 G:25 B:74} 179 } 180 181 func ExampleHSL_ToRGB() { 182 c := HSL{331.0 / 360.0, 67.0 / 100.0, 30.0 / 100.0}.ToRGB() 183 184 fmt.Printf("%s\n", c) 185 186 // Output: RGB{R:127 G:25 B:74} 187 } 188 189 func ExampleHex_IsRGBA() { 190 c1 := Hex(0x7F194B) 191 c2 := Hex(0x7F194B5F) 192 193 fmt.Printf("%s → %t\n", c1.ToWeb(true), c1.IsRGBA()) 194 fmt.Printf("%s → %t\n", c2.ToWeb(true), c2.IsRGBA()) 195 196 // Output: 197 // #7F194B → false 198 // #7F194B5F → true 199 } 200 201 func ExampleHex_ToRGB() { 202 fmt.Printf("%s\n", Hex(0x7F194B).ToRGB()) 203 204 // Output: RGB{R:127 G:25 B:75} 205 } 206 207 func ExampleHex_ToRGBA() { 208 fmt.Printf("%s\n", Hex(0x7F194B5F).ToRGBA()) 209 210 // Output: RGBA{R:127 G:25 B:75 A:0.37} 211 } 212 213 func ExampleHex_ToWeb() { 214 fmt.Printf("%s\n", Hex(0x7F194B).ToWeb(true)) 215 fmt.Printf("%s\n", Hex(0x7F194B).ToWeb(false)) 216 217 // Output: 218 // #7F194B 219 // #7f194b 220 }