ホームページ >バックエンド開発 >Golang >Go 初心者が URL から画像を効率的にダウンロードして保存するにはどうすればよいですか?

Go 初心者が URL から画像を効率的にダウンロードして保存するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-08 19:00:131044ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。