你是否经常有这样的需求:
- 裁剪图片
- 转换图片格式
- 旋转图片
- 。。。
你可能要说这些现在各种工具很容易可以实现呀。的确如此。
不过,如果这些让你通过程序实现呢?比如七牛云图片的很多功能。今天推荐给你一个这样的项目,其实是 Go 语言的一个工具库,可以通过它快速的搭建一个图片服务器,实现类似七牛云对图片的处理功能。项目地址:https://github.com/pierrre/imageserver, Star 数 1.8k+。
一个简单的示例:
package main
import (
"net/http"
"github.com/pierrre/imageserver"
imageserver_http "github.com/pierrre/imageserver/http"
imageserver_http_gift "github.com/pierrre/imageserver/http/gift"
imageserver_http_image "github.com/pierrre/imageserver/http/image"
imageserver_image "github.com/pierrre/imageserver/image"
_ "github.com/pierrre/imageserver/image/gif"
imageserver_image_gift "github.com/pierrre/imageserver/image/gift"
_ "github.com/pierrre/imageserver/image/jpeg"
_ "github.com/pierrre/imageserver/image/png"
imageserver_testdata "github.com/pierrre/imageserver/testdata"
)
func main() {
http.Handle("/", &imageserver_http.Handler{
Parser: imageserver_http.ListParser([]imageserver_http.Parser{
&imageserver_http.SourceParser{},
&imageserver_http_gift.ResizeParser{},
&imageserver_http_image.FormatParser{},
&imageserver_http_image.QualityParser{},
}),
Server: &imageserver.HandlerServer{
Server: imageserver_testdata.Server,
Handler: &imageserver_image.Handler{
Processor: &imageserver_image_gift.ResizeProcessor{},
},
},
})
err := http.ListenAndServe(":8080", nil)
if err != nil {
panic(err)
}
}
项目提供了一个高级示例,实现了:缩放、旋转、裁剪等。
如果你对图片处理感兴趣,可以研究下这个库。
转自:公众号: 转角遇到GitHub