メモリ内のイメージをファイルに保存するためのより良い方法を探しています

クーリックス:

コードの目的は、画像をダウンロードし、大きな親画像に貼り付けて、結果を保存することです。

かなりの失敗の後、私は次のコードが機能するようになりました。

ただし、ターゲットイメージをファイルに保存する/それをhttpResponseに渡すには、bytes.Bufferおよびを使用するよりも良い方法がありwriterますか?

package main

import (
    "image"
    "image/draw"
    "image/jpeg"
    "os"
    // "image/color"
    // "io/ioutil"
    // "fmt"
    "bufio"
    "bytes"
    "log"
    "net/http"
)

func main() {
    // Fetch an image.
    resp, err := http.Get("http://katiebrookekennels.com/wp-content/uploads/2014/10/dog-bone4.jpg")
    if err != nil {
        log.Panic(err)
    }
    defer resp.Body.Close()

    // Keep an in memory copy.
    myImage, err := jpeg.Decode(resp.Body)

    if err != nil {
        log.Panic(err)
    }

    // Prepare parent image where we want to position child image.
    target := image.NewRGBA(image.Rect(0, 0, 800, 800))
    // Draw white layer.
    draw.Draw(target, target.Bounds(), image.White, image.ZP, draw.Src)
    // Draw child image.
    draw.Draw(target, myImage.Bounds(), myImage, image.Point{0, 0}, draw.Src)

    // Encode to jpeg.
    var imageBuf bytes.Buffer
    err = jpeg.Encode(&imageBuf, target, nil)

    if err != nil {
        log.Panic(err)
    }

    // Write to file.
    fo, err := os.Create("img.jpg")
    if err != nil {
        panic(err)
    }
    fw := bufio.NewWriter(fo)

    fw.Write(imageBuf.Bytes())
}
icza:

jpeg.Encode()io.Writerエンコードされた画像を(JPEG形式で)書き込むことを期待します。どちら*os.Filehttp.ResponseWriter実装io.Writerそうする代わりに、あまりにもbytes.Buffer、あなたが直接、あまりにもファイルまたはHTTPレスポンスライターを渡すことができます。

画像を直接ファイルに保存するには:

f, err := os.Create("img.jpg")
if err != nil {
    panic(err)
}
defer f.Close()
jpeg.Encode(f, target, nil)

画像として提供するには:

// w is of type http.ResponseWriter:
jpeg.Encode(w, target, nil)

これらの質問でいくつかの例を見ることができます(JPEGおよびPNG画像の保存/読み込み)。

Golangで長方形を描画しますか?

Goで画像に単純なテキストラベルを追加する方法

単一のピクセルの色を変更-Go lang画像

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リポジトリに.shファイルとしてすでに含まれているイメージをビルドするためのスクリプトを実行するように.travis.ymlファイルを構成する方法

分類Dev

VBAのCopyMemoryを使用してメモリマッピングファイルにデータを保存したり、メモリマッピングファイルからデータを取得したりするにはどうすればよいですか?

分類Dev

ファイルを一覧表示して最後に編集したファイルを表示するためのより良い方法はありますか?

分類Dev

ビットストリームを使用してファイル形式をデコードするためのより良い方法はありますか?

分類Dev

メッセージモデルを設計するためのより良い方法はありますか?

分類Dev

npmによってインストールされたCSSファイルを含めるためのより良い方法はありますか?

分類Dev

Dockerで実行されている2つのWebアプリケーション間でファイルを保存するための最良の方法を探しています

分類Dev

Laravelアプリケーションのフォルダに画像やファイルを保存するためのより良い方法は何ですか?

分類Dev

Excelでファイルハッシュを並べて比較するためにPowerShellのExport-Csvメソッドを使用して、行ではなく列で出力をエクスポートするためのより良い方法

分類Dev

pathlibを使用してファイル名と最後のxディレクトリ名を取得するためのより良い方法はありますか

分類Dev

Cで文字の配列をシフトするためのより良い方法を探しています

分類Dev

これは、Androidのローカルメモリにカスタム配列リストを保存するためのより良い方法です

分類Dev

このPHPファイル関数を使用するためのより短い/よりクリーンな/より良い方法はありますか?

分類Dev

MySQLモデルに整数のリストを保存するためのより良い方法はありますか?

分類Dev

ストレージまたはメモリに保存されているファイルの読み取り

分類Dev

debパッケージを構築するためのより良い方法/フレームワーク/何かを探しています

分類Dev

AngularJSで一度に1つの要素をループして表示するためのより良い方法を探しています

分類Dev

APIを作成するためのより良いドメインモデル

分類Dev

Djangoはディスクに保存する代わりにメモリ内のファイルを提供します

分類Dev

(より良い方法)EclipseとXTextを使用してプロジェクト内のファイルを取得する

分類Dev

配列を含むファイルのセットを保存するためのより良い方法は?

分類Dev

VimでFキーをマッピングするためのより良い方法を探しています

分類Dev

スパースファイルのディレクトリをバックアップおよび復元するための最良の方法を探しています

分類Dev

大きなQueryRunnerの結果をファイルにストリーミングする必要があり、メモリに保存されているようです

分類Dev

すべてのモデルファイルにrequire( 'mongoose')を含める以外に、より良い方法はありますか?

分類Dev

別の.pyファイルの関数を使用するためのより良い方法はありますか?

分類Dev

ファイルをSFTPにコピーするための高速で信頼性の高い方法を探しています

分類Dev

Javaでは、xmlを解析するためにメモリ内にのみ一時ファイルを作成するにはどうすればよいですか?

分類Dev

.htaccessファイルをテストするためのより良い方法

Related 関連記事

  1. 1

    リポジトリに.shファイルとしてすでに含まれているイメージをビルドするためのスクリプトを実行するように.travis.ymlファイルを構成する方法

  2. 2

    VBAのCopyMemoryを使用してメモリマッピングファイルにデータを保存したり、メモリマッピングファイルからデータを取得したりするにはどうすればよいですか?

  3. 3

    ファイルを一覧表示して最後に編集したファイルを表示するためのより良い方法はありますか?

  4. 4

    ビットストリームを使用してファイル形式をデコードするためのより良い方法はありますか?

  5. 5

    メッセージモデルを設計するためのより良い方法はありますか?

  6. 6

    npmによってインストールされたCSSファイルを含めるためのより良い方法はありますか?

  7. 7

    Dockerで実行されている2つのWebアプリケーション間でファイルを保存するための最良の方法を探しています

  8. 8

    Laravelアプリケーションのフォルダに画像やファイルを保存するためのより良い方法は何ですか?

  9. 9

    Excelでファイルハッシュを並べて比較するためにPowerShellのExport-Csvメソッドを使用して、行ではなく列で出力をエクスポートするためのより良い方法

  10. 10

    pathlibを使用してファイル名と最後のxディレクトリ名を取得するためのより良い方法はありますか

  11. 11

    Cで文字の配列をシフトするためのより良い方法を探しています

  12. 12

    これは、Androidのローカルメモリにカスタム配列リストを保存するためのより良い方法です

  13. 13

    このPHPファイル関数を使用するためのより短い/よりクリーンな/より良い方法はありますか?

  14. 14

    MySQLモデルに整数のリストを保存するためのより良い方法はありますか?

  15. 15

    ストレージまたはメモリに保存されているファイルの読み取り

  16. 16

    debパッケージを構築するためのより良い方法/フレームワーク/何かを探しています

  17. 17

    AngularJSで一度に1つの要素をループして表示するためのより良い方法を探しています

  18. 18

    APIを作成するためのより良いドメインモデル

  19. 19

    Djangoはディスクに保存する代わりにメモリ内のファイルを提供します

  20. 20

    (より良い方法)EclipseとXTextを使用してプロジェクト内のファイルを取得する

  21. 21

    配列を含むファイルのセットを保存するためのより良い方法は?

  22. 22

    VimでFキーをマッピングするためのより良い方法を探しています

  23. 23

    スパースファイルのディレクトリをバックアップおよび復元するための最良の方法を探しています

  24. 24

    大きなQueryRunnerの結果をファイルにストリーミングする必要があり、メモリに保存されているようです

  25. 25

    すべてのモデルファイルにrequire( 'mongoose')を含める以外に、より良い方法はありますか?

  26. 26

    別の.pyファイルの関数を使用するためのより良い方法はありますか?

  27. 27

    ファイルをSFTPにコピーするための高速で信頼性の高い方法を探しています

  28. 28

    Javaでは、xmlを解析するためにメモリ内にのみ一時ファイルを作成するにはどうすればよいですか?

  29. 29

    .htaccessファイルをテストするためのより良い方法

ホットタグ

アーカイブ