From 8490492ac0850ec895941b269b75e87b1908ec86 Mon Sep 17 00:00:00 2001 From: hreenshan112 Date: Fri, 22 Nov 2024 16:18:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/img/1.png | Bin 0 -> 2152 bytes assets/img/output_image.svg | 6 + assets/img/output_image111.svg | 0 assets/svg/output22_image.svg | 6 + assets/svg/output_image.svg | 6 + assets/svg/output_image111.svg | 0 controller/common/img.go | 57 +++++++++ controller/common/shiyan.go | 227 +++++++++++++++++++++++++++++++++ go.mod | 9 +- go.sum | 23 ++-- main.go | 12 ++ 11 files changed, 329 insertions(+), 17 deletions(-) create mode 100644 assets/img/1.png create mode 100644 assets/img/output_image.svg create mode 100644 assets/img/output_image111.svg create mode 100644 assets/svg/output22_image.svg create mode 100644 assets/svg/output_image.svg create mode 100644 assets/svg/output_image111.svg create mode 100644 controller/common/img.go diff --git a/assets/img/1.png b/assets/img/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d1e905ca0af330bc25e4b22ade02f694478a61f GIT binary patch literal 2152 zcmcJR_d6R37soSdyjtT@qG+R9RU>ANSeKUO)#@-RYE^VSz} zA{A0fKMmgh=-~MZn{M4r_yO*S7U2^%sY^|j5oV#zMB@P(s^*-@o?fOKC2zHoGxR|& ziF-GAD0KTbZm^0&!sz>ueTV$BDl<8z4I#9f@64?wF(anOiJ72B!D;wFj$}G9k4x+-}s|Z9| zqUbYL=Lzo$Kzv(+t@vY*^Z`s1hMc0L|2_G*b}Q6XlsZ2@_GHkh%zloCZ1rh@)IYrS z_6)bR=8Ko3W=hHQl9m`4bpf3$nwk@8iPGD~Dh%{@kwrAP7&Z;4+LN|u$_StVE|(+$SPv41k3l)-RL29jYDq549SDONwHU7$g%fq9&;cIY=GqRx>MHU2 zBQ8}96!kkF%JFl~ib_;2u%90ZSW;;7iv%*y{dn2c9{ftIn@3d{GrGZ}WD; zCj>Sr@xKvVM$evqFfd;KPFh;}fWsybEL#U6U(2ZDc2?=KZ z9-9{iWA4{N^`BlBys(mH*FC@y${H2s5hvop(S!{!9475GjzB`Zn{{r`CqJ$=`Vc`b z)Sy>^>zob!Os%1Y@2vV3LbUpQ8(}52s75W8m-}1sb0QgW>P_}CfYOF<=J#%Pf!qWA zzb*qW&EFgj%p&-|lfgVL7}0rT6eGAd?ZpIk+x1HY`6RcA zsgmwHuljUOoi=PbXU|aPHdGFaHz;9)+8W$P=UP44x@0cD`cMIr$KN&9$Jey&87+<_ z5sDMtSmm%C5ziwvKj09ul|_e7xVfAb-wi_B&lZFiIWK(?Q^l}GwIGK7u+m_t>QA+3 zo>?TtF@C3AOf_qmO*!&ZLDSBxq?~vq&W>CZS;O(T~i)xd`A>1Sa>_ z#u6>le`j(*Z4=vjZNY6Egi@*odc6f#ChN-p{N2JT+J#EGCXyY`EWD}|3S|gQr-Y_> ztu1c8x%R6@DuY0VpBxFySkZfO3H{Zp>1sMn*5|vPo&B%DrDm~a9%;4WTYas&CP41X zKRP|TogRk=%K{|ATniObNT+;09ZFuBI1nt_gNE!W&DFNX|5bHQs>Ude_#`0Ah5Mm# z+z*-s5IFV*F?}q|Alw+Sy-10&l24iQIK8!<3(FISqN^V~i{$5@l`pu9uzfZDihU=& zmW(aYx$}A0yTjwpczRRaEp5z1^5M?Ku!3WkSj$JxFBnd2R#>b}B3Fd@7QY?*8c|W2 zK&IX*JFMXSNsY4+jQNNUF=~vUiC8AL{R4#5;CZX z5G+a70RTw2S~P3=a68~T*iqAEZ^w^tMXs$@en-rgk!v2Wl~U99wht@86bu#>nMS0g zSa5gvcrH-s`XPy0tnB|7+h&e>^P%75H&^zP_OPjO^t zO(*7N#AiIc$kf8l-Ihnc22&SK zvUz!12jyV#6VzrUI?MZnTB>*d{Qn*AmdYWeVf)&N(v*gN&y;@~PB z6?C2K{(72mRjj#h6n1W;FmfcOe1=CNF-fWyetDqT2Kd+WYsNe&cFW~NASHYp-ZdY) zI9j@mYvk5p%24;C(%1d-k?)p)$6Hbs!hkqpEI^W?OsJ5g?h(CW3*> zHjy(ET>n>ti>*lGH~x@s#Zau;rS}*F3A}d8=8HPv()n!T1piXL<=1^pTcX=c4o@lO zb-)r|lsvoqUtHeSr1}|vuwFL6&u9IPEP|b7BF+Aw`>;wgFt>rVr>yoifhV-Q<*XlR z{PD*cVv&S)PM8p6M_;s!k=K6{ZByzS9ITB}qNM>)Sg*k7p}4u_e$>TDp9Tpu!_Ij0XP{XrvLx| literal 0 HcmV?d00001 diff --git a/assets/img/output_image.svg b/assets/img/output_image.svg new file mode 100644 index 0000000..de03e59 --- /dev/null +++ b/assets/img/output_image.svg @@ -0,0 +1,6 @@ + + + + diff --git a/assets/img/output_image111.svg b/assets/img/output_image111.svg new file mode 100644 index 0000000..e69de29 diff --git a/assets/svg/output22_image.svg b/assets/svg/output22_image.svg new file mode 100644 index 0000000..de03e59 --- /dev/null +++ b/assets/svg/output22_image.svg @@ -0,0 +1,6 @@ + + + + diff --git a/assets/svg/output_image.svg b/assets/svg/output_image.svg new file mode 100644 index 0000000..de03e59 --- /dev/null +++ b/assets/svg/output_image.svg @@ -0,0 +1,6 @@ + + + + diff --git a/assets/svg/output_image111.svg b/assets/svg/output_image111.svg new file mode 100644 index 0000000..e69de29 diff --git a/controller/common/img.go b/controller/common/img.go new file mode 100644 index 0000000..520cb33 --- /dev/null +++ b/controller/common/img.go @@ -0,0 +1,57 @@ +package common + +import ( + "bytes" + "fmt" + "image/jpeg" + "log" + "os" + + svg "github.com/ajstarks/svgo" +) + +func JpgPngToSvgw(inputPAgth, outputPath string) { + // 加载JPG图片 + // 加载JPEG图片 + jpgFile, err := os.Open(inputPAgth) + if err != nil { + log.Fatalf("Error opening JPEG file: %v", err) + } + defer jpgFile.Close() + + img, err := jpeg.Decode(jpgFile) + if err != nil { + log.Fatalf("Error decoding JPEG image: %v", err) + } + + // 创建SVG画布 + width, height := img.Bounds().Dx(), img.Bounds().Dy() + canvas := svg.New(bytes.NewBuffer(nil)) + canvas.Start(width, height) + + // 将JPEG图片转换为SVG路径指令 + for y := 0; y < height; y++ { + for x := 0; x < width; x++ { + // 获取每个像素的颜色 + r, g, b, _ := img.At(x, y).RGBA() + canvas.Circle(x, y, 1, fmt.Sprintf("fill=\"rgb(%d,%d,%d)\"", r, g, b)) + } + } + + // 结束SVG文档 + canvas.End() + + // 输出SVG文件 + // svgData := canvas.Bytes() + svgFile, err := os.Create(outputPath) + if err != nil { + log.Fatalf("Error creating SVG file: %v", err) + } + defer svgFile.Close() + + // _, err = svgFile.Write(canvas) + if err != nil { + log.Fatalf("Error writing SVG data: %v", err) + } + +} diff --git a/controller/common/shiyan.go b/controller/common/shiyan.go index f042a3a..be2e601 100644 --- a/controller/common/shiyan.go +++ b/controller/common/shiyan.go @@ -4,7 +4,14 @@ import ( "appNewPlatform/generalmethod" "appNewPlatform/utils" "appNewPlatform/utils/formatoutput" + "fmt" + "image" + "image/draw" + "image/jpeg" + "image/png" + "os" + svg "github.com/ajstarks/svgo" "github.com/gin-gonic/gin" ) @@ -36,3 +43,223 @@ func (a *ApiMethod) Index(c *gin.Context) { func (a *ApiMethod) JieXiJwt(c *gin.Context) { } + +/* +* +@ 作者: 秦东 +@ 时间: 2024-11-08 15:20:28 +@ 功能: 实验图片改变格式 +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func (a *ApiMethod) JpgToSvg(c *gin.Context) { + +} + +/* +* +@ 作者: 秦东 +@ 时间: 2024-11-08 15:21:29 +@ 功能: 将图像转换为SVG +@ 参数 + + #inputImagePath 来源 + #outputSVGPath 目标 + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func ImageToSVG(inputImagePath, outputSVGPath string) error { + // 打开输入图像文件 + inputFile, err := os.Open(inputImagePath) + if err != nil { + return fmt.Errorf("无法打开输入图像文件: %v", err) + } + defer inputFile.Close() + + // 解码图像 + var img image.Image + var config image.Config + if inputImagePath[len(inputImagePath)-3:] == "png" { + img, err = png.Decode(inputFile) + } else if inputImagePath[len(inputImagePath)-3:] == "jpg" { + img, err = jpeg.Decode(inputFile) + } else { + return fmt.Errorf("不支持的图像格式") + } + if err != nil { + return fmt.Errorf("无法解码图像: %v", err) + } + + // 创建一个空白的RGBA图像,大小与原始图像相同 + rgba := image.NewRGBA(image.Rect(0, 0, config.Width, config.Height)) + draw.Draw(rgba, rgba.Bounds(), img, image.Point{0, 0}, draw.Src) + + // 创建SVG文件 + outputFile, err := os.Create(outputSVGPath) + if err != nil { + return fmt.Errorf("无法创建SVG文件: %v", err) + } + defer outputFile.Close() + + // 初始化SVG绘制上下文 + svg := svg.New(outputFile) + svg.Start(config.Width, config.Height) + + // 遍历图像的每个像素,将其绘制到SVG中 + for y := 0; y < config.Height; y++ { + for x := 0; x < config.Width; x++ { + r, g, b, a := rgba.At(x, y).RGBA() + svg.Rect(x, y, 1, 1, fmt.Sprintf("fill:rgba(%d,%d,%d,%f)", r>>8, g>>8, b>>8, float64(a)/65535)) + } + } + + svg.End() + + return nil +} + +/* +* +@ 作者: 秦东 +@ 时间: 2024-11-08 16:24:10 +@ 功能: +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +// func ImgToSvg(inputImagePath, outputSVGPath string) { +// // 打开输入的 PNG 图像文件 +// inputFile, err := os.Open("input.png") +// if err != nil { +// log.Fatalf("无法打开输入图像文件: %v", err) +// } +// defer inputFile.Close() + +// // 解码 PNG 图像 +// img, err := png.Decode(inputFile) +// if err != nil { +// log.Fatalf("无法解码 PNG 图像: %v", err) +// } + +// // 获取图像的边界 +// bounds := img.Bounds() +// width, height := bounds.Max.X, bounds.Max.Y + +// // 将图像转换为 RGBA 格式 +// rgbaImg := image.NewRGBA(bounds) +// draw.Draw(rgbaImg, bounds, img, image.Point{0, 0}, draw.Src) + +// // 使用 go-libimagequant 进行图像量化 +// quantizer := imagequant.NewQuantizer() +// defer quantizer.Close() + +// // 配置量化参数(可选,这里使用默认参数) +// quantizer.SetMaxColors(256) +// quantizer.SetMinQuality(75) + +// // 对图像进行量化 +// result, err := quantizer.Quantize(rgbaImg) +// if err != nil { +// log.Fatalf("图像量化失败: %v", err) +// } +// defer result.Close() + +// // 创建新的图像,使用量化后的颜色 +// quantizedImg := image.NewPaletted(bounds, result.Palette()) +// for y := 0; y < height; y++ { +// for x := 0; x < width; x++ { +// index := result.Image().At(x, y).(color.NRGBA).R +// quantizedImg.Set(x, y, result.Palette()[int(index)]) +// } +// } + +// // 保存量化后的图像为新的 PNG 文件 +// outputFile, err := os.Create("output.png") +// if err != nil { +// log.Fatalf("无法创建输出图像文件: %v", err) +// } +// defer outputFile.Close() + +// if err := png.Encode(outputFile, quantizedImg); err != nil { +// log.Fatalf("无法保存输出图像文件: %v", err) +// } + +// log.Println("图像量化完成,已保存为 output.png") +// } + +/* +* +@ 作者: 秦东 +@ 时间: 2024-11-09 08:20:56 +@ 功能: +@ 参数 + + # + +@ 返回值 + + # + +@ 方法原型 + + # +*/ +func JpgPngToSvg(inputPAgth, outputPath string) { + // imgFile, err := os.Open(inputPAgth) + // if err != nil { + // log.Fatalf("Error opening image: %v", err) + // } + // defer imgFile.Close() + + // img, _, err := image.Decode(imgFile) + + // if err != nil { + // log.Fatalf("Error decoding image: %v", err) + // } + + // // 创建一个新的SVG画布 + // dc := gg.NewContext(img.Bounds().Dx(), img.Bounds().Dy()) + // // 将图片绘制到SVG上下文 + // dc.DrawImage(img, 0, 0) + // // 将SVG内容写入文件 + // var buf bytes.Buffer + + // if err := gg.RenderToSVG(&buf, dc.Image().Bounds(), dc.Image(), nil); err != nil { //+ + // log.Fatalf("Error rendering to SVG: %v", err) //+ + // } //+ + + // svgFile, err := os.Create("output.svg") + // if err != nil { + // log.Fatalf("Error creating SVG file: %v", err) + // } + // defer svgFile.Close() + + // if _, err := io.Copy(svgFile, &buf); err != nil { + // log.Fatalf("Error writing SVG file: %v", err) + // } + + // fmt.Println("Image converted to SVG successfully.") +} diff --git a/go.mod b/go.mod index 801e944..3302c56 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,12 @@ module appNewPlatform go 1.21.5 require ( + github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b + github.com/fogleman/gg v1.3.0 github.com/fsnotify/fsnotify v1.7.0 github.com/gin-gonic/gin v1.10.0 github.com/golang-jwt/jwt v3.2.2+incompatible - github.com/golang-jwt/jwt/v5 v5.2.1 + github.com/otiai10/gosseract/v2 v2.4.1 github.com/redis/go-redis/v9 v9.6.1 github.com/spf13/viper v1.19.0 gorm.io/driver/mysql v1.5.7 @@ -14,14 +16,14 @@ require ( ) require ( - github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect + github.com/Jeffail/gabs v1.4.0 // indirect + github.com/Jeffail/gabs/v2 v2.7.0 // indirect github.com/bytedance/sonic v1.11.6 // indirect github.com/bytedance/sonic/loader v0.1.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/disintegration/imaging v1.6.2 // indirect github.com/gabriel-vasile/mimetype v1.4.3 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-playground/locales v0.14.1 // indirect @@ -36,7 +38,6 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.7 // indirect github.com/leodido/go-urn v1.4.0 // indirect - github.com/llgcode/draw2d v0.0.0-20240627062922-0ed1ff131195 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect diff --git a/go.sum b/go.sum index 21f2710..071ffe0 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Jeffail/gabs v1.4.0 h1://5fYRRTq1edjfIrQGvdkcd22pkYUrHZ5YC/H2GJVAo= +github.com/Jeffail/gabs v1.4.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= +github.com/Jeffail/gabs/v2 v2.7.0 h1:Y2edYaTcE8ZpRsR2AtmPu5xQdFDIthFG0jYhu5PY8kg= +github.com/Jeffail/gabs/v2 v2.7.0/go.mod h1:dp5ocw1FvBBQYssgHsG7I1WYsiLRtkUaB1FEtSwvNUw= github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw= @@ -23,8 +27,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= -github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= +github.com/fogleman/gg v1.3.0 h1:/7zJX8F6AaYQc57WQCyN9cAIz+4bCJGO9B+dyW29am8= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= @@ -49,8 +53,6 @@ github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= -github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= -github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= @@ -75,8 +77,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/llgcode/draw2d v0.0.0-20240627062922-0ed1ff131195 h1:Vdz2cBh5Fw2MYHWi3ED2PraDQaWEUhNCr1XFHrP4N5A= -github.com/llgcode/draw2d v0.0.0-20240627062922-0ed1ff131195/go.mod h1:1Vk0LDW6jG5cGc2D9RQUxHaE0vYhTvIwSo9mOL6K4/U= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -88,6 +88,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/otiai10/gosseract/v2 v2.4.1 h1:G8AyBpXEeSlcq8TI85LH/pM5SXk8Djy2GEXisgyblRw= +github.com/otiai10/gosseract/v2 v2.4.1/go.mod h1:1gNWP4Hgr2o7yqWfs6r5bZxAatjOIdqWxJLWsTsembk= +github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs= +github.com/otiai10/mint v1.6.3/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -144,9 +148,6 @@ golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= -golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ= -golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E= golang.org/x/image v0.22.0 h1:UtK5yLUzilVrkjMAZAZ34DXGpASN8i8pj8g+O+yd10g= golang.org/x/image v0.22.0/go.mod h1:9hPFhljd4zZ1GNSIZJ49sqbp45GKK9t6w+iXvGqZUz4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -167,10 +168,6 @@ golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/main.go b/main.go index d40361e..5debb9c 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "appNewPlatform/appConstant" + "appNewPlatform/controller/common" "appNewPlatform/initialization" "fmt" "runtime" @@ -18,6 +19,17 @@ func main() { appConstant.MaxCpuNumber = Ncpu fmt.Printf("设置并发服务器核心数量:%v\n", Ncpu) runtime.GOMAXPROCS(Ncpu) //设置使用核心数量 + + inputImagePath := ".\\assets\\img\\1.png" // 替换为实际的输入图像路径,可支持PNG或JPEG + outputSVGPath := "./assets/svg/output_image1111.svg" // 替换为实际的输出SVG路径 + + common.JpgPngToSvgw(inputImagePath, outputSVGPath) + // if err != nil { + // fmt.Println("转换失败:", err) + // } else { + // fmt.Println("转换成功,SVG文件已生成:", outputSVGPath) + // } + //加载数据库 initialization.LoadingDatabase() //加载Redis