GolangGo语言我爱编程

Tinify API client for Golang——ti

2017-06-13  本文已影响389人  gwpp

前言

Tinify是一个提供图片compress、resize 服务的网站,在肉眼看不失真的基础上能够极大的压缩图片文件大小,具体介绍可以看他们的官网 https://tinify.com

Tinify官方提供了很多语言的SDK,但是并没有Golang的。前几天写了一篇文章 《Golang + Tinypng实现图片压缩》,里面谈到了Golang使用Tinify官方提供的 HTTP API client 实现compress的一些想法,但是毕竟简单,所以工作之余在官方 HTTP API client的基础上模仿官方其他语言的实现,使用Golang实现了一个Golang版本的 Tinify API client——tinify-go

Github

https://github.com/gwpp/tinify-go

支持的功能

来源去向

获取方式

go get -u github.com/gwpp/tinify-go

一些示例

func TestCompressFromFile(t *testing.T) {
    Tinify.SetKey(Key)
    source, err := Tinify.FromFile("./test.jpg")
    if err != nil {
        t.Error(err)
        return
    }

    err = source.ToFile("./test_output/CompressFromFile.jpg")
    if err != nil {
        t.Error(err)
        return
    }
    t.Log("Compress successful")
}
func TestResizeFromBuffer(t *testing.T) {
    Tinify.SetKey(Key)

    buf, err := ioutil.ReadFile("./test.jpg")
    if err != nil {
        t.Error(err)
        return
    }
    source, err := Tinify.FromBuffer(buf)
    if err != nil {
        t.Error(err)
        return
    }

    err = source.Resize(&Tinify.ResizeOption{
        Method: Tinify.ResizeMethodScale,
        Width:  200,
    })
    if err != nil {
        t.Error(err)
        return
    }

    err = source.ToFile("./test_output/ResizesFromBuffer.jpg")
    if err != nil {
        t.Error(err)
        return
    }
    t.Log("Resize successful")
}

测试

go get -u github.com/gwpp/tinify-go
cd $GOPATH/src/github.com/gwpp/tinify-go
go test

写在最后

平时项目比较赶,只能抽点午休时间写写,比较仓促,加上笔者水平有限所以可能会有不少问题。若是遇到BUG请及时 GitHub issue,或直接在文章后留言,笔者会尽快修复,谢谢。

上一篇下一篇

猜你喜欢

热点阅读