這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
簡單二次封裝的golang影像處理庫:圖片裁剪
功能
1.Go語言下的官方影像處理庫
2.簡單封裝後對jpg和png映像進行縮放|裁剪的庫
使用說明
1.首先下載
go get -v -u github.com/hunterhug/go-image
2.主要函數
按照寬度進行等比例縮放,第一參數是影像檔,第二個參數是縮放後的儲存檔案路徑
err := ScaleF2F(filename, savepath, width)
按照寬度和高度進行等比例縮放,第一參數是影像檔,第二個參數是縮放後的儲存檔案路徑
err = ThumbnailF2F(filename, save1path, width, height)
檢測影像檔真本文件類型,並返回真實檔案名稱,參數為影像檔位置
realfilename, err := RealImageName(savepath)
改變影像檔名,第一個參數為檔案原始名字,第二個參數是檔案改名後名字,第三個參數表示是否強制改名
err=ChangeImageName(savepath,realfilename,false)
使用樣本
example.go
package mainimport ( "fmt" . "github.com/hunterhug/go-image/go_image")//將某一圖片檔案進行縮放後存入另外的檔案中func main() { //列印當前檔案夾位置 fmt.Printf("本檔案檔案夾位置:%s\n", CurDir()) //映像位置 filename := "./testdata/gopher.png" //儲存位置 savepath := "./testdata/gopher400.jpg" save1path := "./testdata/gopher400*400.png" //寬度,高度 width := 200 height := 400 //按照寬度進行等比例縮放 err := ScaleF2F(filename, savepath, width) if err != nil { fmt.Printf("%s\n", err.Error()) }else{ fmt.Printf("產生按寬度縮放圖%s\n",savepath) } //按照寬度和高度進行等比例縮放 err = ThumbnailF2F(filename, save1path, width, height) if err != nil { fmt.Printf("%s\n", err.Error()) }else{ fmt.Printf("產生按寬度高度縮放圖%s\n",save1path) } //查看影像檔的真正名字 //如 ./testdata/gopher400.jpg其實是png類型,但是命名錯誤,需要糾正! realfilename, err := RealImageName(savepath) if err != nil { fmt.Printf("%s\n", err.Error()) } else { fmt.Printf("真正的檔案名稱:%s\n", realfilename) } //檔案改名,不強制性 err=ChangeImageName(savepath,realfilename,false) if err!=nil{ fmt.Printf("檔案改名失敗:%s%s",realfilename,err.Error()) } //檔案改名,強制性 err=ChangeImageName(savepath,realfilename,true) if err!=nil{ fmt.Printf("檔案改名失敗:%s%s",realfilename,err.Error()) }else{ fmt.Println("改名成功") }}
結果
本檔案檔案夾位置:/home/hunterhug/golang/pikapika/src/github.com/hunterhug/go-image產生按寬度縮放圖./testdata/gopher400.jpg產生按寬度高度縮放圖./testdata/gopher400*400.png真正的檔案名稱:./testdata/gopher400.png檔案改名失敗:./testdata/gopher400.png檔案已經存在
原始圖片
寬度200px等比例縮放裁剪
寬度200px,高度400px等比例縮放裁剪
來自
This is a Graphics library for the Go programming language.
Unless otherwise noted, the graphics-go source files are distributed
under the BSD-style license found in the LICENSE file.
Contributions should follow the same procedure as for the Go project:
http://golang.org/doc/contribute.html
聯絡
Time:2016/8/10
author:hunterhug