問題:
URL から画像を取得しようとしたとき、ファイルに保存すると、「関数では m (type image.Image) を type []byte として使用できません」というエラーが発生します引数。"
分析:
元のコードは、イメージを Go image.Image オブジェクト (m) に変換します。これは、イメージのメモリ内表現です。ただし、ioutil.WriteFile() 関数はバイト スライス ([]byte) を想定しています。
解決策:
イメージをメモリ内表現に変換する代わりに, io.Copy 関数を使用して、応答本文を出力ファイルに直接コピーできます。コードの修正バージョンは次のとおりです。
package main import ( "fmt" "io" "log" "net/http" "os" ) func main() { url := "http://i.imgur.com/m1UIjW1.jpg" // don't worry about errors response, err := http.Get(url) if err != nil { log.Fatal(err) } defer response.Body.Close() //open a file for writing file, err := os.Create("/tmp/asdf.jpg") if err != nil { log.Fatal(err) } defer file.Close() // Use io.Copy to just dump the response body to the file. This supports huge files _, err = io.Copy(file, response.Body) if err != nil { log.Fatal(err) } fmt.Println("Success!") }
説明:
追加メモ:
以上がGo で URL から画像を効率的にダウンロードして保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。