6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GAE/Goでアップロードした画像を取得して表示する #golang

Posted at

画像つかっていろいろやってみたいと思ったけど、
その辺いじったことないので、チュートリアル的にまずはじめに作ってみた。

結果

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 ってやつを試してみようと思う。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?