Rumah >pembangunan bahagian belakang >Golang >Bagaimana dengan Cekap Menukar imej Golang.Imej kepada []bait untuk Storan?

Bagaimana dengan Cekap Menukar imej Golang.Imej kepada []bait untuk Storan?

Linda Hamilton
Linda Hamiltonasal
2024-12-02 09:23:11353semak imbas

How to Efficiently Convert a Golang image.Image to []byte for Storage?

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!

Kenyataan:
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