内容简介:原图:裁剪后:
package main
import (
"bytes"
"fmt"
"github.com/disintegration/imaging"
"github.com/george518/PPGo_ClipImg/coreImg"
"image"
"io/ioutil"
"log"
"os"
"strings"
"testing"
)
//判断目录是否存在
func IsDir(name string) bool {
fi, err := os.Stat(name)
if err != nil {
fmt.Println("Error: ", err)
return false
}
return fi.IsDir()
}
//创建多级目录
func CreateDir(name string) bool {
if IsDir(name) {
return true
}
if createDirImpl(name) {
return true
} else {
return false
}
}
func createDirImpl(name string) bool {
err := os.MkdirAll(name, 0777)
if err == nil {
return true
} else {
return false
}
}
func MakeDir(file string) string {
path := strings.Split(file, "/")
var newFilePath = ""
for k, p := range path {
if k != len(path)-1 {
newFilePath += p + "/"
}
}
newFilePath += "CoreImages/"
CreateDir(newFilePath)
return newFilePath + path[len(path)-1]
}
func TestImage(t *testing.T) {
path:="example/images/bags.jpg"
//打开图片
file, err := ioutil.ReadFile(path)
if err != nil {
log.Fatal(err)
}
bt := bytes.NewBuffer(file)
m, _, err := image.Decode(bt)
if err != nil {
log.Fatal(err)
}
//截取核心图片
x0, x1, y0, y1 := coreImg.CoreImg(m)
//截取图片
corePic := imaging.Crop(m, image.Rect(x0, y0, x1, y1))
//创建地址和文件名,并保存图片
newPath := MakeDir(path)
err = imaging.Save(corePic, newPath)
if err != nil {
log.Fatal(err)
}
}
原图:
image.png
裁剪后:
image.png
以上所述就是小编给大家介绍的《golang 获取纯色底图中的核心图》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【Verge3D问答】使用HDRI的同时使用纯色背景
- ADO.NET获取数据(DataSet)同时获取表的架构实例
- 根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID
- .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
- phpinfo获取敏感内容
- 低开销获取时间戳
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。