52
52
53
53
// ---------- basic(16) <=> RGB color convert ----------
54
54
// refer from Hyper app
55
+ // Tip: only keep foreground color, background color need convert to foreground color for convert to RGB
55
56
basic2hexMap = map [uint8 ]string {
56
57
30 : "000000" , // black
57
58
31 : "c51e14" , // red
61
62
35 : "c839c5" , // magenta
62
63
36 : "20c5c6" , // cyan
63
64
37 : "c7c7c7" , // white
64
- // - don't add bg color
65
+ // - don't add bg color, convert to fg color for convert to RGB
65
66
// 40: "000000", // black
66
67
// 41: "c51e14", // red
67
68
// 42: "1dc121", // green
@@ -428,10 +429,11 @@ func HexToRGB(hex string) []int { return HexToRgb(hex) }
428
429
// HexToRgb convert hex color string to RGB numbers
429
430
//
430
431
// Usage:
431
- // rgb := HexToRgb("ccc") // rgb: [204 204 204]
432
- // rgb := HexToRgb("aabbcc") // rgb: [170 187 204]
433
- // rgb := HexToRgb("#aabbcc") // rgb: [170 187 204]
434
- // rgb := HexToRgb("0xad99c0") // rgb: [170 187 204]
432
+ //
433
+ // rgb := HexToRgb("ccc") // rgb: [204 204 204]
434
+ // rgb := HexToRgb("aabbcc") // rgb: [170 187 204]
435
+ // rgb := HexToRgb("#aabbcc") // rgb: [170 187 204]
436
+ // rgb := HexToRgb("0xad99c0") // rgb: [170 187 204]
435
437
func HexToRgb (hex string ) (rgb []int ) {
436
438
hex = strings .TrimSpace (hex )
437
439
if hex == "" {
@@ -474,6 +476,7 @@ func Rgb2hex(rgb []int) string { return RgbToHex(rgb) }
474
476
// RgbToHex convert RGB-code to hex-code
475
477
//
476
478
// Usage:
479
+ //
477
480
// hex := RgbToHex([]int{170, 187, 204}) // hex: "aabbcc"
478
481
func RgbToHex (rgb []int ) string {
479
482
hexNodes := make ([]string , len (rgb ))
@@ -488,10 +491,15 @@ func RgbToHex(rgb []int) string {
488
491
* 4bit(16) color <=> RGB/True color
489
492
*************************************************************/
490
493
494
+ // BasicToHex convert basic color to hex string.
495
+ func BasicToHex (val uint8 ) string {
496
+ val = Bg2Fg (val )
497
+ return basic2hexMap [val ]
498
+ }
499
+
491
500
// Basic2hex convert basic color to hex string.
492
501
func Basic2hex (val uint8 ) string {
493
- val = Fg2Bg (val )
494
- return basic2hexMap [val ]
502
+ return BasicToHex (val )
495
503
}
496
504
497
505
// Hex2basic convert hex string to basic color code.
@@ -663,6 +671,7 @@ func C256ToRgbV1(val uint8) (rgb []uint8) {
663
671
// returns r, g, and b in the set [0, 255].
664
672
//
665
673
// Usage:
674
+ //
666
675
// HslIntToRgb(0, 100, 50) // red
667
676
// HslIntToRgb(120, 100, 50) // lime
668
677
// HslIntToRgb(120, 100, 25) // dark green
@@ -677,6 +686,7 @@ func HslIntToRgb(h, s, l int) (rgb []uint8) {
677
686
// returns r, g, and b in the set [0, 255].
678
687
//
679
688
// Usage:
689
+ //
680
690
// rgbVals := HslToRgb(0, 1, 0.5) // red
681
691
func HslToRgb (h , s , l float64 ) (rgb []uint8 ) {
682
692
var r , g , b float64
0 commit comments