如何將圖片從URL 儲存到檔案:克服無法使用m (type image.Image) 作為Type []byte 錯誤
從URL 獲取圖像並將其保存到檔案是許多程式設計應用程式中的常見任務。在 Go 中,這可以使用 http 和 image 套件來實現。但是,在嘗試將 image.Image 類型傳遞給 ioutil.WriteFile 函數時,可能會遇到錯誤。
錯誤訊息,「cannot use m (type image.Image) as type []byte in function argument,」 表示 image.Image 類型不能直接寫入檔案。這是因為 ioutil.WriteFile 函數需要一個位元組切片 ([]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 儲存映像時出現「cannot use m (type image.Image) as Type []byte」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!