github.com/chain5j/chain5j-pkg@v1.0.7/color/color_test.go (about) 1 // Package color 2 // 3 // @author: xwc1125 4 package color 5 6 import ( 7 "fmt" 8 "strings" 9 "testing" 10 ) 11 12 func TestColor(t *testing.T) { 13 // 默认的不带任何效果的字体显示 14 fmt.Println(Green("字体:Green")) 15 fmt.Println(LightGreen("字体:LightGreen")) 16 fmt.Println(Cyan("字体:Cyan")) 17 fmt.Println(LightCyan("字体:LightCyan")) 18 fmt.Println(Red("字体:Red")) 19 fmt.Println(LightRed("字体:LightRed")) 20 fmt.Println(Yellow("字体:Yellow")) 21 fmt.Println(Black("字体:Black")) 22 fmt.Println(DarkGray("字体:DarkGray")) 23 fmt.Println(LightGray("字体:LightGray")) 24 fmt.Println(White("字体:White")) 25 fmt.Println(Blue("字体:Blue")) 26 fmt.Println(LightBlue("字体:LightBlue")) 27 fmt.Println(Purple("字体:Purple")) 28 fmt.Println(LightPurple("字体:LightPurple")) 29 fmt.Println(Brown("字体:Brown")) 30 fmt.Println(Blue("字体:Blue", 1, 1)) 31 32 // 带闪烁效果的彩色字体显示 33 fmt.Println(Green("闪烁字体:Green", 1, 1)) 34 fmt.Println(LightGreen("闪烁字体:LightGreen", 1)) 35 fmt.Println(Cyan("闪烁字体:Cyan", 1)) 36 fmt.Println(LightCyan("闪烁字体:LightCyan", 1)) 37 fmt.Println(Red("闪烁字体:Red", 1)) 38 fmt.Println(LightRed("闪烁字体:LightRed", 1)) 39 fmt.Println(Yellow("闪烁字体:Yellow", 1)) 40 fmt.Println(Black("闪烁字体:Black", 1)) 41 fmt.Println(DarkGray("闪烁字体:DarkGray", 1)) 42 fmt.Println(LightGray("闪烁字体:LightGray", 1)) 43 fmt.Println(White("闪烁字体:White", 1)) 44 fmt.Println(Blue("闪烁字体:Blue", 1)) 45 fmt.Println(LightBlue("闪烁字体:LightBlue", 1)) 46 fmt.Println(Purple("闪烁字体:Purple", 1)) 47 fmt.Println(LightPurple("闪烁字体:LightPurple", 1)) 48 fmt.Println(Brown("闪烁字体:Brown", 1)) 49 50 // 带下划线效果的字体显示 51 fmt.Println(Green("闪烁且带下划线字体:Green", 1, 1, 1)) 52 fmt.Println(LightGreen("闪烁且带下划线字体:LightGreen", 1, 1)) 53 fmt.Println(Cyan("闪烁且带下划线字体:Cyan", 1, 1)) 54 fmt.Println(LightCyan("闪烁且带下划线字体:LightCyan", 1, 1)) 55 fmt.Println(Red("闪烁且带下划线字体:Red", 1, 1)) 56 fmt.Println(LightRed("闪烁且带下划线字体:LightRed", 1, 1)) 57 fmt.Println(Yellow("闪烁且带下划线字体:Yellow", 1, 1)) 58 fmt.Println(Black("闪烁且带下划线字体:Black", 1, 1)) 59 fmt.Println(DarkGray("闪烁且带下划线字体:DarkGray", 1, 1)) 60 fmt.Println(LightGray("闪烁且带下划线字体:LightGray", 1, 1)) 61 fmt.Println(White("闪烁且带下划线字体:White", 1, 1)) 62 fmt.Println(Blue("闪烁且带下划线字体:Blue", 1, 1)) 63 fmt.Println(LightBlue("闪烁且带下划线字体:LightBlue", 1, 1)) 64 fmt.Println(Purple("闪烁且带下划线字体:Purple", 1, 1)) 65 fmt.Println(LightPurple("闪烁且带下划线字体:LightPurple", 1, 1)) 66 fmt.Println(Brown("闪烁且带下划线字体:Brown", 1, 1)) 67 } 68 69 // Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例: 70 // fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B) 71 // 其中0x1B是标记,[开始定义颜色,1代表高亮,40代表黑色背景,32代表绿色前景,0代表恢复默认颜色。显示效果为: 72 func TestColor2(t *testing.T) { 73 74 fmt.Println(Green("字体:Green")) 75 fmt.Println(ColorRender("字体:Green", ForegroundColor_Green, BackgroundColor_Transparent)) 76 fmt.Println(Green("闪烁字体:Green", 1)) 77 fmt.Println(ColorRender("闪烁字体:Green", ForegroundColor_Green, BackgroundColor_Transparent, []ShowType{ 78 ShowType_Blink, 79 }...)) 80 fmt.Println(Green("闪烁且带下划线字体:Green", 1, 1)) 81 fmt.Println(ColorRender("闪烁且带下划线字体:Green", ForegroundColor_Green, BackgroundColor_Transparent, []ShowType{ 82 ShowType_Blink, 83 ShowType_Underline, 84 }...)) 85 86 var foreground = 30 87 var background = 41 88 var typ1 = 1 89 msg := "字体:Green" 90 sprintf := fmt.Sprintf("%c[%d;%d;%dm%s%s%c[0m", 0x1B, typ1, background, foreground, "", msg, 0x1B) 91 fmt.Println(sprintf) 92 // 0 终端默认设置 93 // 1 高亮显示 94 // 4 使用下划线 95 // 5 闪烁 96 // 7 反白显示 97 // 8 不可见 98 var mo = []string{ 99 "05", // 闪烁 100 // "04", // 使用下划线 101 // "07", // 反白显示 102 fmt.Sprintf("%d", 1), // 高亮显示 103 // fmt.Sprintf("%d", 0),// 终端默认设置 104 // fmt.Sprintf("%d", 8), // 不可见 105 fmt.Sprintf("%d", background), // 不可见 106 } 107 sprintf2 := fmt.Sprintf("\033[%s;%dm"+msg+"\033[0m", strings.Join(mo, ";"), foreground) 108 fmt.Println(sprintf2) 109 test1() 110 // test2() 111 } 112 113 func test1() { 114 fmt.Println("") 115 // 前景 背景 颜色 116 // --------------------------------------- 117 // - 39 透明 118 // 30 40 黑色 119 // 31 41 红色 120 // 32 42 绿色 121 // 33 43 黄色 122 // 34 44 蓝色 123 // 35 45 紫红色 124 // 36 46 青蓝色 125 // 37 47 白色 126 // 127 // 代码 意义 128 // ------------------------- 129 // 0 终端默认设置 130 // 1 高亮显示 131 // 4 使用下划线 132 // 5 闪烁 133 // 7 反白显示 134 // 8 不可见 135 136 for background := 39; background <= 47; background++ { // 背景色彩 = 39-47 137 for foreground := 30; foreground <= 37; foreground++ { // 前景色彩 = 30-37 138 for _, t := range []int{0, 1, 4, 5, 7, 8} { // 显示方式 = 0,1,4,5,7,8 139 msg := fmt.Sprintf("(f=%d,b=%d,t=%d)", foreground, background, t) 140 sprintf := fmt.Sprintf(" %c[%d;%d;%dm%s"+msg+"%c[0m ", 0x1B, t, background, foreground, "", 0x1B) 141 fmt.Print(sprintf) 142 } 143 fmt.Println("") 144 } 145 fmt.Println("") 146 } 147 } 148 149 func test2() { 150 // 0x1B是标记 151 // 1代表高亮,40代表黑色背景,32代表绿色前景,0代表恢复默认颜色 152 fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B) 153 fmt.Printf("\n %c[1;34;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B) 154 }