修正和重构代码
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
"errors"
|
||||
"image"
|
||||
"image/png"
|
||||
"bytes"
|
||||
"encoding/base64"
|
||||
@@ -465,15 +466,15 @@ func CaculateSkuEarningPrice(shopPrice, salePrice int64, storePayPercentage int)
|
||||
return earningPrice
|
||||
}
|
||||
|
||||
func GetImgBase64(qrCode barcode.Barcode) (imgBase64 string, err error) {
|
||||
func GetImgBase64(img image.Image) (imgBase64 string, err error) {
|
||||
bufWriter := bytes.NewBuffer(nil)
|
||||
png.Encode(bufWriter, qrCode)
|
||||
png.Encode(bufWriter, img)
|
||||
imgBase64 = "data:image/png;base64," + base64.StdEncoding.EncodeToString(bufWriter.Bytes())
|
||||
|
||||
return imgBase64, err
|
||||
}
|
||||
|
||||
func CreateQrAndBarCode(width, height int, codetype, srcData string) (imgBase64 string, err error) {
|
||||
func CreateQrOrBarCode(width, height int, codeType, srcData string) (imgBase64 string, err error) {
|
||||
if width > MaxCodeWidth {
|
||||
width = MaxCodeWidth
|
||||
}
|
||||
@@ -481,24 +482,19 @@ func CreateQrAndBarCode(width, height int, codetype, srcData string) (imgBase64
|
||||
height = MaxCodeHeight
|
||||
}
|
||||
|
||||
if codetype == CodeTypeQr {
|
||||
qrCode, err := qr.Encode(srcData, qr.M, qr.Auto)
|
||||
if err == nil {
|
||||
qrCode, err = barcode.Scale(qrCode, width, height)
|
||||
if err == nil {
|
||||
imgBase64, err = GetImgBase64(qrCode)
|
||||
}
|
||||
}
|
||||
} else if codetype == CodeTypeBar {
|
||||
cs, err := code128.Encode(srcData)
|
||||
if err == nil {
|
||||
qrCode, err2 := barcode.Scale(cs, width, height)
|
||||
if err = err2; err == nil {
|
||||
imgBase64, err = GetImgBase64(qrCode)
|
||||
}
|
||||
}
|
||||
var code barcode.Barcode
|
||||
if codeType == CodeTypeQr {
|
||||
code, err = qr.Encode(srcData, qr.M, qr.Auto)
|
||||
} else if codeType == CodeTypeBar {
|
||||
code, err = code128.Encode(srcData)
|
||||
} else {
|
||||
err = errors.New(fmt.Sprintf("未知编码类型:%s", codetype))
|
||||
err = errors.New(fmt.Sprintf("未知编码类型:%s", codeType))
|
||||
}
|
||||
if err == nil {
|
||||
code, err = barcode.Scale(code, width, height)
|
||||
if err == nil {
|
||||
imgBase64, err = GetImgBase64(code)
|
||||
}
|
||||
}
|
||||
|
||||
return imgBase64, err
|
||||
|
||||
Reference in New Issue
Block a user