Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menukar imej.Imej kepada []bait dalam Go for S3 Upload?

Bagaimana untuk Menukar imej.Imej kepada []bait dalam Go for S3 Upload?

Susan Sarandon
Lepaskan: 2024-11-30 21:13:18
asal
835 orang telah melayarinya

How to Convert an image.Image to []byte in Go for S3 Upload?

Menukar imej.Imej kepada []bait dalam Golang

Dalam artikel ini, kami menangani isu menukar imej.Imej kepada [ ]bait dalam Go. Titik sakit terletak pada garisan yang ditunjukkan oleh garis putus-putus dalam coretan kod yang disediakan:

image_data, err := mybucket.Get(key)

if err != nil {
    panic(err.Error())
}

// reset format of data []byte to image.Image

original_image, _, err := image.Decode(bytes.NewReader(image_data))

new_image := resize.Resize(160, 0, original_image, resize.Lanczos3)
- - - - - - - - - - - - - - - - - - - - - - - - - - -
// reset format the image.Image to data []byte here
var send_S3 []byte
var byteWriter = bufio.NewWriter(send_S3)
- - - - - - - - - - - - - - - - - - - - - - - - - -
err = jpeg.Encode(byteWriter, new_image, nil)

new_path := key + "_sm"

err = mybucket.Put(new_path, send_S3, "image/jpg", "aclstring")
Salin selepas log masuk

Objektifnya adalah untuk mengubah imej. Imej, new_image, ke dalam format []bait untuk memuat naik ke baldi S3.

Penyelesaian

Kunci untuk menyelesaikan isu ini adalah dengan gunakan bait.Penimbal bukannya bufio.Penulis. bytes.Buffer direka bentuk untuk menulis data dalam ingatan, manakala bufio.Writer hanya menyimpan cache data dalam ingatan sebelum menyerahkannya kepada penulis lain.

buf := new(bytes.Buffer)
err := jpeg.Encode(buf, new_image, nil)
send_s3 := buf.Bytes()
Salin selepas log masuk

Dengan menggunakan bytes.Buffer, kami menangkap imej yang dikodkan dengan berkesan ke dalam kepingan []bait bernama send_s3. Potongan ini kemudiannya boleh digunakan untuk memuat naik imej ke baldi S3.

Atas ialah kandungan terperinci Bagaimana untuk Menukar imej.Imej kepada []bait dalam Go for S3 Upload?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan