内容简介:原图:裁剪后:
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获取敏感内容
- 低开销获取时间戳
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法分析-有效的学习方法(影印版)
Jeffrey J.McConnell / 高等教育出版社 / 2003-03-01 / 28.0
本书主要目标是提高读者关于算法对程序效率的影响等问题的认知水平,并培养读者分析程序中的算法所必需的技巧。各章材料以激发读者有效的、协同的学习方法的形式讲述。通过全面的论述和完整的数学推导,本书帮助读者最大限度地理解基本概念。 本书内容包括促使学生参与其中的大量程序设计课题。书中所有算法以伪码形式给出,使得具备条件表达式、循环与递归方面知识的读者均易于理解。本书以简洁的写作风格向读者介绍了兼具......一起来看看 《算法分析-有效的学习方法(影印版)》 这本书的介绍吧!