Menukar Imej.Imej kepada []bait dalam Golang
Apabila bekerja dengan pemprosesan imej di Golang, kadangkala perlu menukar imej. Objek imej kepada tatasusunan bait ([]bait) untuk memudahkan penyimpanan atau penghantarannya. Satu senario biasa ialah mengubah saiz imej dan memuat naiknya ke perkhidmatan storan objek seperti Amazon S3.
Semasa pemprosesan imej, format data imej perlu ditukar daripada []bait kepada imej. Imej dan kembali ke []bait. Kesukaran timbul apabila cuba menukar saiz imej.Imej (new_image) kembali kepada []bait untuk dimuat naik ke S3.
Penyelesaian:
Untuk menyelesaikan isu ini, daripada menggunakan bufio.Writer, yang bertindak sebagai lapisan caching, gunakan bytes.Buffer. Bytes.Buffer menulis data terus ke memori, menjadikannya sesuai untuk menangkap data imej yang dikodkan dalam tatasusunan bait.
Coretan Kod:
Coretan kod berikut menjadi contoh bagaimana untuk menukar saiz imej.Imej (new_image) kepada []bait menggunakan a bytes.Buffer:
import ( // Import necessary Go packages ) func main() { // Establish S3 connection (if necessary) // Get image data from S3 (already in []byte format) // ... processing to resize the image ... // Create a bytes.Buffer to capture the encoded image data buf := new(bytes.Buffer) // Encode the resized image using JPEG format err := jpeg.Encode(buf, new_image, nil) if err != nil { // Handle error } // Convert the bytes.Buffer contents to a byte array send_S3 := buf.Bytes() // ... upload to S3 (using send_S3 as the image data) ... }
Dengan memanfaatkan bait.Buffer, imej yang diubah saiz berjaya ditukar kepada []tatasusunan bait, membolehkan muat naiknya ke Amazon S3.
Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar imej Golang.Imej kepada []bait untuk Storan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!