Browse Source

增加照片格式处理

master
Viviman 2 years ago
parent
commit
c8c9989dab
  1. 1
      golang_learn/data_func/go_to_img/convert/main.go
  2. 0
      golang_learn/data_func/go_to_img/shouxin/main.exe.manifest
  3. 0
      golang_learn/data_func/go_to_img/shouxin/main.go
  4. 0
      golang_learn/data_func/go_to_img/shouxin/main.syso
  5. 0
      golang_learn/data_func/go_to_img/shouxin/rc.ico
  6. 21
      golang_learn/data_func/go_to_img/wangxin/main.exe.manifest
  7. 261
      golang_learn/data_func/go_to_img/wangxin/main.go
  8. BIN
      golang_learn/data_func/go_to_img/wangxin/main.syso
  9. BIN
      golang_learn/data_func/go_to_img/wangxin/rc.ico

1
golang_learn/data_func/go_to_img/convert/main.go

@ -1 +0,0 @@
package convert

0
golang_learn/data_func/go_to_img/main.exe.manifest → golang_learn/data_func/go_to_img/shouxin/main.exe.manifest

0
golang_learn/data_func/go_to_img/main.go → golang_learn/data_func/go_to_img/shouxin/main.go

0
golang_learn/data_func/go_to_img/main.syso → golang_learn/data_func/go_to_img/shouxin/main.syso

0
golang_learn/data_func/go_to_img/rc.ico → golang_learn/data_func/go_to_img/shouxin/rc.ico

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

21
golang_learn/data_func/go_to_img/wangxin/main.exe.manifest

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="x86"
name="controls"
type="win32"
></assemblyIdentity>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>

261
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
}

BIN
golang_learn/data_func/go_to_img/wangxin/main.syso

Binary file not shown.

BIN
golang_learn/data_func/go_to_img/wangxin/rc.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Loading…
Cancel
Save