图片服务器
发布者:admin 发表于:438天前 阅读数:613 评论:0

大家好,我是欧盆索思(opensource),每天为你带来优秀的开源项目!

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

裁剪图片

转换图片格式

旋转图片

。。。

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

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

今天推荐给你一个这样的项目,其实是 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)
 }
}

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