Go で URL から画像を効率的にダウンロードして保存するにはどうすればよいですか?
Dec 01, 2024 am 06:13 AMGo で URL から画像をダウンロードして保存する
問題:
URL から画像を取得しようとしたとき、ファイルに保存すると、「関数では m (type image.Image) を type []byte として使用できません」というエラーが発生します引数。"
分析:
元のコードは、イメージを Go image.Image オブジェクト (m) に変換します。これは、イメージのメモリ内表現です。ただし、ioutil.WriteFile() 関数はバイト スライス ([]byte) を想定しています。
解決策:
イメージをメモリ内表現に変換する代わりに, 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!") }
説明:
- http.Get() は URL から画像を取得し、応答を次の場所に保存します。 response.
- os.Create() は次の場所に空のファイルを作成します/tmp/asdf.jpg.
- io.Copy は、response.Body の内容全体をファイルにコピーします。
- fmt.Println() は、成功メッセージを出力します。
追加メモ:
- このコードHTTP 応答に有効な画像ファイルが含まれていることを前提としています。
- 例外の処理やより高度な画像操作機能については、github.com/disintegration/imaging などの専用の Go 画像ライブラリの使用を検討してください。
以上がGo で URL から画像を効率的にダウンロードして保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか?
