Go实战项目:打造一个七牛云图片处理服务

2021年6月4日 176点热度 0人点赞 0条评论

你是否经常有这样的需求:

  • 裁剪图片
  • 转换图片格式
  • 旋转图片
  • 。。。

你可能要说这些现在各种工具很容易可以实现呀。的确如此。

不过,如果这些让你通过程序实现呢?比如七牛云图片的很多功能。

今天推荐给你一个这样的项目,其实是 Go 语言的一个工具库,可以通过它快速的搭建一个图片服务器,实现类似七牛云对图片的处理功能。

项目地址:https://github.com/pierrre/imageserver,Star 数 1.9k+。

一个简单的示例:

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)
 }
}

项目提供了一个高级示例,实现了:缩放、旋转、裁剪等。

图片

如果你对图片处理感兴趣,可以研究下这个库。

文末「阅读原文」可直达项目首页。

今天的项目大家觉得怎么样吗?如果你喜欢,请在文章底部留言、点赞或关注转发,你的支持就是我持续更新的最大动力!


推荐阅读

福利
我为大家整理了一份从入门到进阶的Go学习资料礼包,包含学习建议:入门看什么,进阶看什么。关注公众号 「polarisxu」,回复 ebook 获取;还可以回复「进群」,和数万 Gopher 交流学习。

图片

4990Go实战项目:打造一个七牛云图片处理服务

root

这个人很懒,什么都没留下

文章评论