Manipulasi imej Golang: bagaimana untuk mencerminkan, memutar dan membalikkan imej

WBOY
Lepaskan: 2023-08-25 22:31:44
asal
1202 orang telah melayarinya

. Di Golang, kita boleh menggunakan pakej imej untuk mengendalikan dan memproses imej. Artikel ini akan menumpukan pada cara menggunakan Golang untuk mencerminkan, memutar dan membalikkan imej serta memberikan contoh kod yang sepadan.

Manipulasi imej Golang: bagaimana untuk mencerminkan, memutar dan membalikkan imej2. Operasi cerminan

Mencerminkan gambar adalah untuk menukar susun atur kiri dan kanan gambar. Di Golang, anda boleh menggunakan fungsi Flip pakej draw untuk melaksanakan operasi pencerminan.

Berikut ialah kod contoh untuk mencerminkan dan menyimpan imej.

package main

import (
    "image"
    "image/draw"
    "image/jpeg"
    "os"
)

func main() {
    // 打开图片文件
    file, err := os.Open("input.jpg")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    // 解码图片
    img, _, err := image.Decode(file)
    if err != nil {
        panic(err)
    }

    // 创建一个新的画布
    flipImg := image.NewRGBA(img.Bounds())

    // 镜像操作
    draw.Draw(flipImg, flipImg.Bounds(), img, img.Bounds().Min, draw.FlipHorizontal)

    // 创建输出文件
    output, err := os.Create("output_flip.jpg")
    if err != nil {
        panic(err)
    }
    defer output.Close()

    // 保存为JPEG格式图片
    jpeg.Encode(output, flipImg, nil)
}
Salin selepas log masuk

3. Operasi putaran

Memusing gambar adalah untuk menukar arah dan sudut gambar. Di Golang, anda boleh menggunakan fungsi Putar pakej seri untuk melaksanakan operasi putaran.


Berikut ialah kod sampel untuk memutarkan imej 90 darjah mengikut arah jam dan menyimpannya.

package main

import (
    "image"
    "image/draw"
    "image/jpeg"
    "os"
)

func main() {
    // 打开图片文件
    file, err := os.Open("input.jpg")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    // 解码图片
    img, _, err := image.Decode(file)
    if err != nil {
        panic(err)
    }

    // 创建一个新的画布,大小为旋转后的尺寸
    rotateImg := image.NewRGBA(image.Rect(0, 0, img.Bounds().Dy(), img.Bounds().Dx()))

    // 旋转操作
    draw.Draw(rotateImg, rotateImg.Bounds(), img, img.Bounds().Min, draw.Rotate90)

    // 创建输出文件
    output, err := os.Create("output_rotate.jpg")
    if err != nil {
        panic(err)
    }
    defer output.Close()

    // 保存为JPEG格式图片
    jpeg.Encode(output, rotateImg, nil)
}
Salin selepas log masuk

4. Operasi flip

Operasi flip pada gambar adalah untuk menukar susun atur atas dan bawah gambar. Di Golang, anda boleh menggunakan fungsi Flip pakej draw untuk melaksanakan operasi flip.


Berikut ialah contoh kod untuk menyelak imej dan menyimpannya.

package main

import (
    "image"
    "image/draw"
    "image/jpeg"
    "os"
)

func main() {
    // 打开图片文件
    file, err := os.Open("input.jpg")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    // 解码图片
    img, _, err := image.Decode(file)
    if err != nil {
        panic(err)
    }

    // 创建一个新的画布
    flipImg := image.NewRGBA(img.Bounds())

    // 翻转操作
    draw.Draw(flipImg, flipImg.Bounds(), img, img.Bounds().Min, draw.FlipVertical)

    // 创建输出文件
    output, err := os.Create("output_flip.jpg")
    if err != nil {
        panic(err)
    }
    defer output.Close()

    // 保存为JPEG格式图片
    jpeg.Encode(output, flipImg, nil)
}
Salin selepas log masuk

Dalam contoh kod di atas, kami menggunakan fungsi berkaitan pakej imej untuk mengendalikan imej. Antaranya, fungsi image.Decode digunakan untuk menyahkod fail imej dan mencipta objek imej. Sebelum beroperasi, kami mula-mula mencipta objek kanvas baharu (iaitu mencipta objek imej baharu), dan kemudian menggunakan fungsi pakej lukisan untuk melaksanakan operasi seperti pencerminan, putaran dan membalikkan. Akhir sekali, gunakan fungsi Encode pakej jpeg untuk menyimpan imej yang diproses dalam format JPEG.

5. Ringkasan
Melalui pengenalan dan contoh kod artikel ini, kami telah mempelajari cara menggunakan Golang untuk mencerminkan, memutar dan membalikkan imej. Dalam pembangunan sebenar, kami boleh melaksanakan operasi pemprosesan imej yang sepadan mengikut keperluan khusus untuk memenuhi keperluan projek. Pada masa yang sama, kami juga boleh menggabungkan dengan perpustakaan pemprosesan imej lain, seperti mengubah saiz, memangkas, dll., untuk melengkapkan lagi operasi imej yang lebih kompleks.

Saya harap artikel ini dapat membantu semua orang dalam pemprosesan imej Golang!

Atas ialah kandungan terperinci Manipulasi imej Golang: bagaimana untuk mencerminkan, memutar dan membalikkan imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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