首頁 >後端開發 >Golang >Go初學者如何有效率地從URL下載並保存圖片?

Go初學者如何有效率地從URL下載並保存圖片?

DDD
DDD原創
2024-12-08 19:00:131110瀏覽

How Can a Go Beginner Efficiently Download and Save Images from a URL?

從 URL 儲存圖片

問題:

作為 Go 新手,如何從 URL檢索圖像並保存它

初始方法:

提供的程式碼嘗試使用 image.Decode 來解碼圖像,該圖像是為解碼圖像檔案而設計的。但是,檢索到的資料應被視為原始位元組。

更新的方法:

要直接從 URL 中保存圖像,我們可以使用 ioutil.ReadFrom 來將包含圖像資料的回應正文複製到本地檔案。

這是修改後的程式碼:

package main

import (
    "fmt"
    "io"
    "io/ioutil"
    "log"
    "net/http"
    "os"
)

func main() {
    url := "http://i.imgur.com/m1UIjW1.jpg"

    response, err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    defer response.Body.Close()

    file, err := os.Create("/images/asdf.jpg")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    _, err = io.Copy(file, response.Body)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Image saved successfully!")
}

解釋:

  • HTTP 回應正文被視為位元組流。
  • io.Copy 為用於將位元組從串流傳輸到本機檔案。
  • 根據檔案大小,傳輸可以可能需要時間,但這是處理大圖像的有效方法。

以上是Go初學者如何有效率地從URL下載並保存圖片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn