私は現在、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>
画像を再度エンコードしてから提供する必要があると確信しています。しかし、イメージをディスクに保存せずにこれを行う方法がよくわかりません...
前もって感謝します!