Rumah > pembangunan bahagian belakang > Golang > Cara transcode imej dalam golang

Cara transcode imej dalam golang

PHPz
Lepaskan: 2023-04-23 16:14:48
asal
1126 orang telah melayarinya

Dalam pembangunan web, transcoding imej adalah keperluan yang sangat biasa. Di Golang, anda boleh menukar kod imej dengan menggunakan pakej imej dan imej/jpeg dalam pustaka standard.

Di Golang, imej boleh dinyahkodkan kepada objek imej standard melalui imej.Penyahkod dan objek imej standard boleh dikodkan ke dalam format imej yang diperlukan melalui imej.Pengekod, seperti JPG, PNG, BMP, dsb. Artikel ini mengambil alih pengekodan imej format JPEG ke dalam format PNG sebagai contoh.

Pertama, kita perlu membaca dalam imej format JPEG, yang boleh dicapai melalui kod berikut:

file, err := os.Open("input.jpg")
if err != nil {
    log.Fatal(err)
}
defer file.Close()

img, err := jpeg.Decode(file)
if err != nil {
    log.Fatal(err)
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan os.Open untuk membuka imej input bernama Jika fail imej .jpg gagal dibuka, ralat akan dilemparkan. Kemudian kami menggunakan jpeg.Decode untuk menyahkod fail menjadi img objek imej Jika penyahkodan gagal, ralat akan dilemparkan.

Seterusnya, kita perlu mengekod objek imej ke dalam gambar format PNG. Kami boleh menggunakan Pengekod dalam pakej imej/png untuk pengekodan, seperti berikut:

out, err := os.Create("output.png")
if err != nil {
    log.Fatal(err)
}
defer out.Close()

err = png.Encode(out, img)
if err != nil {
    log.Fatal(err)
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan os.Create untuk mencipta fail imej format PNG bernama output.png Ralat akan dilemparkan pada kegagalan. Kemudian kami menggunakan png.Encode untuk mengekod objek imej img ke dalam imej format PNG dan menulis hasilnya ke output.png Jika pengekodan gagal, ralat akan dilemparkan.

Pelaksanaan lengkap kod di atas adalah seperti berikut:

package main

import (
    "image/jpeg"
    "image/png"
    "log"
    "os"
)

func main() {

    file, err := os.Open("input.jpg")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    img, err := jpeg.Decode(file)
    if err != nil {
        log.Fatal(err)
    }

    out, err := os.Create("output.png")
    if err != nil {
        log.Fatal(err)
    }
    defer out.Close()

    err = png.Encode(out, img)
    if err != nil {
        log.Fatal(err)
    }

    log.Println("Image conversion successful!")

}
Salin selepas log masuk

Dengan menjalankan kod di atas, imej format JPEG boleh ditranskodkan kepada imej format PNG. Perlu diingatkan bahawa kita perlu mengendalikan ralat dengan sewajarnya semasa proses transcoding, dan kita perlu menutup sumber yang sepadan selepas menggunakan fail dan objek imej.

Atas ialah kandungan terperinci Cara transcode imej dalam golang. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan