使用概览

基本用法

链式调用(推荐)

链式调用看起来非常简洁。
package main
import "github.com/fishtailstudio/imgo"
func main() {
imgo.Load("background.png").
Resize(250, 350).
Insert("gopher.png", 50, 50).
Save("out.png")
}

非链式调用

package main
import "github.com/fishtailstudio/imgo"
func main() {
background := imgo.Load("background.png")
background.Resize(250, 350)
background.Insert("gopher.png", 50, 50)
background.Save("out.png")
}
这个例子和上个例子是等效的。

读取图像

使用 ImGo 读取图像非常简单,你只要调用 imgo.Load() 方法即可。
imgo.Load("gopher.png")
该方法不仅可以读取本地文件,还支持以下输入格式。
  • 文件系统中图像的绝对路径或相对路径
  • 图片的 URL
  • Base64 编码的图像数据
  • *os.File 类型的文件实例
  • 实现了 image.Image 接口的类型实例
  • *imgo.Image 类型的实例

创建图像

使用 Canvas 方法可以创建一个指定长宽和颜色的画布。
package main
import (
"awesomeProject/imgo"
"image/color"
)
func main() {
imgo.Canvas(500, 500, color.White).
Save("out.png")
}

编辑图像

使用 LoadCanvas 方法获得图像实例后,就可以调用方法编辑图像了。
编辑图像的方法都会返回 *imgo.Image 类型的实例,因此才可以链式的调用。

图像输出

输出为文件

只要调用 Save 方法就可以将编辑好的图像保存为文件。
Save 方法接收一个字符串类型的文件路径参数,可以是绝对路径也可以是相对路径。
该路径参数需要带图像格式后缀,如 out.png
ImGo 会根据图像格式后缀输出相应格式的图像,无需其他操作。
支持的图像格式格式如下。
格式
Mimetype
jpg
image/jpeg
png
image/png
bmp
image/x-ms-bmp
tiff
image/tiff
不支持 WEBP 格式的图像输出原因是 golang.org/x/image/webp 包只提供了 Decode 方法,没有提供 Encode 方法。

HTTP响应

ImGo 支持将编辑好的图像直接作为 HTTP 响应,使用方法如下。
package main
import (
"awesomeProject/imgo"
"net/http"
)
func main() {
http.HandleFunc("/gopher", imgo.Load("gopher.png").HttpHandler)
http.ListenAndServe(":8080", nil)
}
在本机运行上例,在浏览器访问 http://localhost/gopher 将能看到 gopher.png 图像。
复制链接
大纲
基本用法
链式调用(推荐)
非链式调用
读取图像
创建图像
编辑图像
图像输出
输出为文件
HTTP响应