Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menukar `image.Image` Golang kepada `[]bait` untuk Muat Naik S3?
Menukar Imej daripada imej.Imej kepada Format []bait dalam Golang
Soalan ini berkaitan dengan menukar imej yang diwakili sebagai imej. Objek imej kepada tatasusunan bait, diwakili sebagai jenis []bait dalam Golang. Cabaran khusus adalah jelas dalam coretan kod yang disediakan, di mana langkah penukaran ditandakan dengan garis putus-putus.
// ... original_image, _, err := image.Decode(bytes.NewReader(image_data)) new_image := resize.Resize(160, 0, original_image, resize.Lanczos3) // Convert the image.Image to []byte here new_path := key + "_sm" err = mybucket.Put(new_path, send_S3, "image/jpg", "aclstring")
Untuk membetulkan isu tersebut, niatnya adalah untuk mengubah imej yang diubah suai, disimpan dalam new_image, menjadi tatasusunan bait, membolehkan ia dihantar ke baldi S3 melalui fungsi Put.
Ubatnya terletak pada penggunaan bytes.Jenis penimbal, yang menawarkan penimbal dalam memori untuk menulis data. Penampan ini berfungsi sebagai destinasi untuk data imej berkod JPEG. Sebaliknya, bufio.Writer yang digunakan sebelum ini hanya menyimpan data sebelum menghantarnya kepada penulis asas, tanpa mengumpul data dalam ingatan.
Begini cara kod harus dilaraskan:
buf := new(bytes.Buffer) err := jpeg.Encode(buf, new_image, nil) send_s3 := buf.Bytes()
Kod yang dikemas kini ini menggunakan bait. Penampan untuk mengumpul data imej berkod JPEG dalam ingatan, yang kemudiannya diambil sebagai tatasusunan byte dengan memanggil kaedah Bytes pada penimbal. Tatasusunan bait ini kini boleh dihantar ke fungsi Put untuk memuat naik imej ke baldi S3.
Atas ialah kandungan terperinci Bagaimana untuk Menukar `image.Image` Golang kepada `[]bait` untuk Muat Naik S3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!