1 Star 0 Fork 0

sftec/go-img-split-merge

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
merge.go 1.28 KB
一键复制 编辑 原始数据 按行查看 历史
suifengtec 提交于 2022-07-03 04:05 +08:00 . init
package imgsm
import (
"errors"
"image"
"image/jpeg"
"image/png"
"os"
"path/filepath"
"strconv"
// https://github.com/ozankasikci/go-image-merge
gim "github.com/ozankasikci/go-image-merge"
)
func Merge(baseDir, srcImgType, targetImgType, direction string, min, max int) error {
srcs := make([]*gim.Grid, 0)
for i := min; i < max; i++ {
srcs = append(srcs, &gim.Grid{
ImageFilePath: filepath.Join(baseDir, strconv.Itoa(i)+"."+srcImgType),
})
}
/*
grids []*gim.Grid, imageCountDX int, imageCountDY int
*/
var rgba *image.RGBA
var err error
if direction == "v" || direction == "V" {
rgba, err = gim.New(srcs, 1, max-1).Merge()
if err != nil {
return err
}
} else if direction == "h" || direction == "H" {
rgba, err = gim.New(srcs, max-1, 1).Merge()
if err != nil {
return err
}
}
if rgba == nil {
return errors.New("Merge:not support merge type")
}
//创建或截断命名文件。如果文件已存在,则将其截断
targetFile, err := os.Create(filepath.Join(baseDir, "merged."+targetImgType))
if err != nil {
return err
}
defer targetFile.Close()
if targetImgType == "jpg" {
err = jpeg.Encode(targetFile, rgba, &jpeg.Options{Quality: 80})
} else {
err = png.Encode(targetFile, rgba)
}
if err != nil {
return err
}
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/sftec/go-img-split-merge.git
git@gitee.com:sftec/go-img-split-merge.git
sftec
go-img-split-merge
go-img-split-merge
0547978f4a72

搜索帮助