package tools import ( "fmt" "image" "b612.me/starlog" "github.com/spf13/cobra" ) func init() { imageCmd.AddCommand(imgMirrorCmd) Maincmd.AddCommand(imageCmd) } var imageCmd = &cobra.Command{ Use: "image", Short: "图像处理", Long: "简单的图像处理工具", Run: func(this *cobra.Command, args []string) { this.Help() }, } var imgMirrorCmd = &cobra.Command{ Use: "mirror", Short: "图像镜像翻转", Long: "图像镜像翻转<水平>", Run: func(this *cobra.Command, args []string) { if len(args) == 0 { starlog.StdPrintln(0, starlog.RED, "请指定需要转换的图像!") return } for _, v := range args { img, err := OpenImage(v) if err != nil { starlog.StdPrintln(0, starlog.RED, err, v) continue } size := img.Bounds() nimg := image.NewRGBA(size) for x := 0; x < size.Dx(); x++ { for y := 0; y < size.Dy(); y++ { nimg.Set(size.Dx()-x, y, img.At(x, y)) } } if err := SavePhoto(v, nimg); err != nil { starlog.StdPrintln(0, starlog.RED, err, v) continue } else { fmt.Println(v, "转换已完成!") } } fmt.Println("任务完成!") }, } var imgAlpha = &cobra.Command{ Use: "alpha", Short: "设置透明度", Long: "设置alpha通道透明度", Run: func(this *cobra.Command, args []string) { if len(args) == 0 { starlog.StdPrintln(0, starlog.RED, "请指定需要转换的图像!") return } for _, v := range args { img, err := OpenImage(v) if err != nil { starlog.StdPrintln(0, starlog.RED, err, v) continue } img = SetAlpha(img, 4) if err := SavePhoto(v, img); err != nil { starlog.StdPrintln(0, starlog.RED, err, v) continue } else { fmt.Println(v, "转换已完成!") } } fmt.Println("任务完成!") }, }