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  }