문제:
URL에서 이미지를 검색하려고 할 때 파일에 저장하면 오류가 발생합니다. "함수에서 m(image.Image 유형)을 []byte 유형으로 사용할 수 없습니다. 인수."
분석:
원래 코드는 이미지를 이미지의 메모리 내 표현인 Go image.Image 객체(m)로 변환합니다. 그러나 ioutil.WriteFile() 함수는 바이트 슬라이스([]바이트)를 예상합니다.
해결책:
이미지를 메모리 내 표현으로 변환하는 대신 , 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!