Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengekod imej yang Disaizkan dengan Cekap. Imej kepada []bait dalam Go?

Bagaimana untuk Mengekod imej yang Disaizkan dengan Cekap. Imej kepada []bait dalam Go?

Patricia Arquette
Lepaskan: 2024-12-05 18:49:10
asal
978 orang telah melayarinya

How to Efficiently Encode a Resized image.Image to a []byte in Go?

Menyahkod dan Mengekod Imej Menggunakan Go

In Go, menukar imej daripada imej. Jenis imej kepada kepingan bait ([]bait ) adalah penting untuk menyimpan dan menghantar data imej. Artikel ini membentangkan isu biasa yang dihadapi semasa penukaran ini dan menyediakan penyelesaian.

Coretan kod yang disediakan cuba memuat turun imej daripada baldi, menyahkodnya kepada imej. Imej, ubah saiznya dan kemudian tukar saiz semula imej kembali ke kepingan bait untuk dimuat naik ke S3. Walau bagaimanapun, bahagian kod yang diserlahkan ialah di mana isu itu terletak.

// 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)
Salin selepas log masuk

Isunya ialah bufio.Writer digunakan untuk menyimpan data sebelum menulisnya kepada penulis lain, tetapi dalam kes ini, kita perlu untuk menulis terus ke penimbal memori. Untuk menyelesaikan masalah ini, kami menggunakan bait.Penimbal sebaliknya, yang menulis ke memori.

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

Dengan menggunakan bait.Penimbal, imej yang diubah saiz ditulis terus ke memori, mencipta kepingan bait yang sesuai untuk memuat naik ke S3. Ini membolehkan kod berjaya mengekod dan memuat naik imej yang diubah saiz ke baldi yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Mengekod imej yang Disaizkan dengan Cekap. Imej kepada []bait dalam Go?. 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