我目前正在玩 golang 和 Martini 等,并希望动态地提供一些操纵/生成的图像。这是一个最小的例子:
package main
import (
"github.com/codegangsta/martini"
"github.com/nfnt/resize"
"image"
"image/jpeg"
"log"
"os"
)
func thumb() image.Image {
file, err := os.Open("test.jpg")
if err != nil {
log.Fatal(err)
}
img, err := jpeg.Decode(file)
if err != nil {
log.Fatal(err)
}
file.Close()
m := resize.Resize(0, 200, img, resize.MitchellNetravali)
return m
}
func main() {
m := martini.Classic()
m.Get("/") image.Image {
return thumb()
})
m.Run()
}
这编译得很好,但我没有提供图像,而是得到一些“Content-Type:text/plain; charset=utf-8”,如下所示:
<*image.RGBA64 Value>
我很确定我需要再次编码图像然后提供它。但我不太确定如何在不将图像保存到磁盘的情况下执行此操作......
提前致谢!