Go
1package main 2 3import ( 4 "fmt" 5 "image/png" 6 "io/ioutil" 7 "net/http" 8 "os" 9) 10 11func main() { 12 j, err := http.Get("https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/versions/generation-viii/icons/1.png") 13 if err != nil { 14 panic(err) 15 } 16 img, _ = ioutil.ReadAll(j.Body) 17 file, err := os.Create("sample.png") 18 if err != nil { 19 panic(err) 20 } 21 defer file.Close() 22 file.Write(img) 23 24 raw, err := os.Open("./sample.png") 25 if err != nil { 26 panic(err) 27 } 28 defer raw.Close() 29 30 wantReturn, err := png.Decode(raw) 31 if err != nil { 32 panic(err) 33 } 34 fmt.Println(wantReturn) 35} 36
他のサイトからpngファイルを持ってきて、それを表示させるものを作っています。
1...http.Getで、他のサイトの画像を持ってきて、
2...1で持ってきたものをos.CreateとWriteでsample.pngに移して、
3...2のファイルをos.Openでいじれるようにし、
4...png.Decodeで画像を表示できるようにしようと考えています。
しかしgo runするときに、下のエラーが表示されてサーバーが立ち上がりません。
#image
/opt/homebrew/Cellar/go/1.18.1/libexec/src/image/image.go:49:7: invalid receiver type Image (pointer or interface type)
エラーで表示されたところにいくと、以下のように埋め込みエラー?と出ていました。
// Error implements error
func (Image) Error() string {
panic("unimplemented")
}
png.Decodeをコメントアウトすると正しくサーバーが動くことから、4番がうまくいっていないのではないかと考えています。
また、参考にしたサイトの二つのプログラムを実行してみると、やはり上のエラーが表示されてサーバーが立ち上がりません。
https://qiita.com/sys_cat/items/15322618884b1a6d0871#%E7%94%BB%E5%83%8F%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E3%83%AA%E3%82%B5%E3%82%A4%E3%82%BA%E7%94%BB%E5%83%8F%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%81%8C%E5%86%97%E9%95%B7%E3%81%A7%E3%81%99
どのようにコードを変えたらうまく画像が表示されるか知りたいです。
ご回答よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/09 12:12
2022/07/09 22:22
2022/07/10 02:38
2022/07/10 04:22 編集
2022/07/10 05:05
2022/07/10 13:42
2022/07/15 08:21
2022/07/15 11:25
2022/07/16 08:42
2022/07/16 15:11
2022/07/17 06:41
2022/07/17 14:45 編集
2022/07/18 13:48