diff --git a/golang_learn/data_func/go_to_img/convert/main.go b/golang_learn/data_func/go_to_img/convert/main.go deleted file mode 100644 index 233bcde..0000000 --- a/golang_learn/data_func/go_to_img/convert/main.go +++ /dev/null @@ -1 +0,0 @@ -package convert diff --git a/golang_learn/data_func/go_to_img/main.exe.manifest b/golang_learn/data_func/go_to_img/shouxin/main.exe.manifest similarity index 100% rename from golang_learn/data_func/go_to_img/main.exe.manifest rename to golang_learn/data_func/go_to_img/shouxin/main.exe.manifest diff --git a/golang_learn/data_func/go_to_img/main.go b/golang_learn/data_func/go_to_img/shouxin/main.go similarity index 100% rename from golang_learn/data_func/go_to_img/main.go rename to golang_learn/data_func/go_to_img/shouxin/main.go diff --git a/golang_learn/data_func/go_to_img/main.syso b/golang_learn/data_func/go_to_img/shouxin/main.syso similarity index 100% rename from golang_learn/data_func/go_to_img/main.syso rename to golang_learn/data_func/go_to_img/shouxin/main.syso diff --git a/golang_learn/data_func/go_to_img/rc.ico b/golang_learn/data_func/go_to_img/shouxin/rc.ico similarity index 100% rename from golang_learn/data_func/go_to_img/rc.ico rename to golang_learn/data_func/go_to_img/shouxin/rc.ico diff --git a/golang_learn/data_func/go_to_img/wangxin/main.exe.manifest b/golang_learn/data_func/go_to_img/wangxin/main.exe.manifest new file mode 100644 index 0000000..c52acbc --- /dev/null +++ b/golang_learn/data_func/go_to_img/wangxin/main.exe.manifest @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/golang_learn/data_func/go_to_img/wangxin/main.go b/golang_learn/data_func/go_to_img/wangxin/main.go new file mode 100644 index 0000000..c54b1dc --- /dev/null +++ b/golang_learn/data_func/go_to_img/wangxin/main.go @@ -0,0 +1,261 @@ +package main + +import ( + "database/sql" + "fmt" + "golang.org/x/image/bmp" + "golang.org/x/image/tiff" + "image/gif" + "image/jpeg" + "image/png" + "os" + "path/filepath" + "strings" + "time" + + _ "github.com/go-sql-driver/mysql" +) + +var demo = "select a0101 name from a01" + +var hzbSQL = "select concat('copy D:\\\\insigma\\\\old\\\\', PHOTONAME, ' D:\\\\insigma\\\\new\\\\', a0184, substr(PHOTONAME, instr(PHOTONAME,'.'))) name " + + "from a57 join a01 on a57.a0000=a01.a0000 where PHOTONAME not REGEXP '^[0-9A-Za-z]' or " + + "lower(substr(PHOTONAME, instr(PHOTONAME,'.')+1)) not in ('jpg', 'jpeg')" +var mysqlSQL = "select concat('copy D:\\\\insigma\\\\old\\\\', a5714, ' D:\\\\insigma\\\\old\\\\', a0184, substr(a5714, instr(a5714,'.'))) name " + + "from a57 join a01 on a57.id=a01.id where a5714 not REGEXP '^[0-9A-Za-z]' or a5714 like '%|%' or " + + "lower(substr(a5714, instr(a5714,'.')+1)) not in ('jpg', 'jpeg')" + +func main() { + + args := os.Args + dir, _ := filepath.Abs("./") + if args[1] == "hzb" { + queryHzb() + } else if args[1] == "mysql" { + queryMySQL() + } else if args[1] == "img" { + makeImg(dir) + } else { + fmt.Println("您操作可能存在问题!\n" + + "请联系张献维...\n" + + "hzb : Hzb数据库照片问题处理,生产脚本!\n" + + "mysql : MySQL数据库照片问题处理,生产脚本!\n" + + "img : 照片格式处理,新照片存储同目录下!") + } + +} +func makeImg(dir string) { + newStr, dirStr := "", "" + dirs, _ := getDirList(dir) + for i, j := 0, len(dirs); i < j; i++ { + dirStr = dirs[i] + if strings.HasSuffix(dirStr, ".png") || strings.HasSuffix(dirStr, ".PNG") { + newStr = strings.Replace(dirStr, ".png", ".jpg", -1) + newStr = strings.Replace(newStr, ".PNG", ".jpg", -1) + runPng(dirStr, newStr) + } else if strings.HasSuffix(dirStr, ".tiff") || strings.HasSuffix(dirStr, ".TIFF") { + newStr = strings.Replace(dirStr, ".tiff", ".jpg", -1) + newStr = strings.Replace(newStr, ".TIFF", ".jpg", -1) + runTiff(dirStr, newStr) + } else if strings.HasSuffix(dirStr, ".pic") || strings.HasSuffix(dirStr, ".PIC") { + newStr = strings.Replace(dirStr, ".pic", ".jpg", -1) + newStr = strings.Replace(newStr, ".PIC", ".jpg", -1) + runPic(dirStr, newStr) + } else if strings.HasSuffix(dirStr, ".bmp") || strings.HasSuffix(dirStr, ".BMP") { + newStr = strings.Replace(dirStr, ".bmp", ".jpg", -1) + newStr = strings.Replace(newStr, ".BMP", ".jpg", -1) + runBmp(dirStr, newStr) + } else if strings.HasSuffix(dirStr, ".gif") || strings.HasSuffix(dirStr, ".GIF") { + newStr = strings.Replace(dirStr, ".gif", ".jpg", -1) + newStr = strings.Replace(newStr, ".GIF", ".jpg", -1) + runGif(dirStr, newStr) + } + } +} + +func getDirList(dirpath string) ([]string, error) { + var dirList []string + dirErr := filepath.Walk(dirpath, + func(path string, f os.FileInfo, err error) error { + if f == nil { + return err + } + if !f.IsDir() && !strings.HasSuffix(f.Name(), ".jpeg") && !strings.HasSuffix(f.Name(), ".jpg") && !strings.HasSuffix(f.Name(), ".JPEG") && !strings.HasSuffix(f.Name(), ".JPG") { + dirList = append(dirList, path) + return nil + } + + return nil + }) + return dirList, dirErr +} + +func writeFile(allStr string) { + file3, _ := os.Create(time.Now().Format("20060102150405") + ".txt") + file3.WriteString(allStr) + file3.Close() +} + +func queryHzb() { + db, err := sql.Open("mysql", "root:admin@tcp(localhost:35017)/hy_qggwy?charset=utf8") + if err != nil { + fmt.Println(err) + } + + rows, _ := db.Query(hzbSQL) + fmt.Println(hzbSQL) + name, _ := rows.Columns() + endStr := "" + for rows.Next() { + rows.Scan(&name[0]) + endStr = endStr + "\r\n" + name[0] + } + writeFile(endStr) +} + +func queryMySQL() { + db, err := sql.Open("mysql", "gwydb:gwydbpwd@tcp(localhost:7953)/gwybase?charset=utf8") + if err != nil { + fmt.Println(err) + } + + rows, _ := db.Query(mysqlSQL) + fmt.Println(mysqlSQL) + name, endStr := "", "" + for rows.Next() { + rows.Scan(&name) + endStr = endStr + "\r\n" + name + } + writeFile(endStr) +} + +func runTiff(fPath, tPath string) { + fmt.Println(fPath, " ", tPath) + file, err := os.Open(fPath) + if err != nil { + fmt.Println(err) + } + defer file.Close() + + file1, err := os.Create(tPath) + if err != nil { + fmt.Println(err) + } + defer file1.Close() + + img, err := tiff.Decode(file) //解码 + if err != nil { + fmt.Println(err) + } + jpeg.Encode(file1, img, nil) //编码,但是将图像质量从100改成5 + +} + +func runPic(fPath, tPath string) { + fmt.Println(fPath, " ", tPath) + file, err := os.Open(fPath) + if err != nil { + fmt.Println(err) + } + defer file.Close() + + file1, err := os.Create(tPath) + if err != nil { + fmt.Println(err) + } + defer file1.Close() + + img, err := jpeg.Decode(file) //解码 + if err != nil { + fmt.Println(err) + } + jpeg.Encode(file1, img, nil) //编码,但是将图像质量从100改成5 + +} + +func runBmp(fPath, tPath string) { + fmt.Println(fPath, " ", tPath) + file, err := os.Open(fPath) + if err != nil { + fmt.Println(err) + } + defer file.Close() + + file1, err := os.Create(tPath) + if err != nil { + fmt.Println(err) + } + defer file1.Close() + + img, err := bmp.Decode(file) //解码 + if err != nil { + fmt.Println(err) + } + jpeg.Encode(file1, img, nil) //编码,但是将图像质量从100改成5 + +} + +func runGif(fPath, tPath string) { + fmt.Println(fPath, " ", tPath) + file, err := os.Open(fPath) + if err != nil { + fmt.Println(err) + } + defer file.Close() + + file1, err := os.Create(tPath) + if err != nil { + fmt.Println(err) + } + defer file1.Close() + + img, err := gif.Decode(file) //解码 + if err != nil { + fmt.Println(err) + } + jpeg.Encode(file1, img, nil) //编码,但是将图像质量从100改成5 + +} + +func runPng(fPath, tPath string) { + fmt.Println(fPath, " ", tPath) + file, err := os.Open(fPath) + if err != nil { + fmt.Println(err) + } + defer file.Close() + + file1, err := os.Create(tPath) + if err != nil { + fmt.Println(err) + } + defer file1.Close() + + img, err := png.Decode(file) //解码 + if err != nil { + fmt.Println(err) + } + jpeg.Encode(file1, img, nil) //编码,但是将图像质量从100改成5 + +} + +func runJpg(fPath, tPath string) { + file, err := os.Open(fPath) + if err != nil { + fmt.Println(err) + } + defer file.Close() + + file1, err := os.Create(tPath) + if err != nil { + fmt.Println(err) + } + defer file1.Close() + + img, err := jpeg.Decode(file) //解码 + if err != nil { + fmt.Println(err) + } + jpeg.Encode(file1, img, nil) //编码,但是将图像质量从100改成5 + +} diff --git a/golang_learn/data_func/go_to_img/wangxin/main.syso b/golang_learn/data_func/go_to_img/wangxin/main.syso new file mode 100644 index 0000000..b620536 Binary files /dev/null and b/golang_learn/data_func/go_to_img/wangxin/main.syso differ diff --git a/golang_learn/data_func/go_to_img/wangxin/rc.ico b/golang_learn/data_func/go_to_img/wangxin/rc.ico new file mode 100644 index 0000000..a06bf77 Binary files /dev/null and b/golang_learn/data_func/go_to_img/wangxin/rc.ico differ