画像つかっていろいろやってみたいと思ったけど、
その辺いじったことないので、チュートリアル的にまずはじめに作ってみた。
結果
package main
import (
"image/jpeg"
"net/http"
"google.golang.org/appengine"
"google.golang.org/appengine/blobstore"
)
func init() {
http.HandleFunc("/test", Test)
http.ListenAndServe(":8080", nil)
}
func Test(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
key := r.FormValue("key")
blobKey := appengine.BlobKey(key)
img, err := jpeg.Decode(blobstore.NewReader(c, blobKey))
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.Header().Set("Content-type", "image/jpeg")
w.WriteHeader(http.StatusOK)
jpeg.Encode(w, img, nil)
}
io.Readerとかその辺使ったコードを書き慣れてないので勉強になった。
ioutil.ReadAllはメモリ効率が悪いのでio.Readerを使っていこうね、と以下のスライドで学んだ。
もともと類似画像のチェックをやってみたいと思って始めたので、
次は Average Hash ってやつを試してみようと思う。