URL から画像をファイルに保存する方法: m (type image.Image) を Type []byte として使用できないエラーを解決する
URL から画像を取得してファイルに保存することは、多くのプログラミング アプリケーションで一般的なタスクです。 Go では、http および image パッケージを使用してこれを実現できます。ただし、image.Image タイプを ioutil.WriteFile 関数に渡そうとすると、エラーが発生する可能性があります。
エラー メッセージ「関数では m (type image.Image) を type []byte として使用できません」引数」は、image.Image タイプをファイルに直接書き込むことができないことを示します。これは、ioutil.WriteFile 関数が 2 番目の引数としてバイト スライス ([]byte) を予期しているためです。
この状況で画像をファイルに保存する正しい方法は、画像を完全にデコードしないことです。代わりに、画像データを含む応答本文をファイルに直接コピーできます。
package main import ( "fmt" "io" "log" "net/http" "os" ) func main() { url := "http://i.imgur.com/m1UIjW1.jpg" // don't worry about errors response, e := http.Get(url) if e != nil { log.Fatal(e) } 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 から画像を保存するときに発生する「m (type image.Image) を Type []byte として使用できません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。