Bagaimana untuk menukar gambar kepada kesan hitam putih dan halftone menggunakan Golang

王林
Lepaskan: 2023-08-18 16:06:17
asal
1025 orang telah melayarinya

Bagaimana untuk menukar gambar kepada kesan hitam putih dan halftone menggunakan Golang

Cara menukar gambar kepada kesan hitam putih dan halftone menggunakan Golang

Dengan perkembangan teknologi yang berterusan, pemprosesan imej telah menjadi bidang yang semakin penting. Dalam pemprosesan imej, menukar gambar berwarna kepada kesan hitam putih atau halftone adalah operasi biasa. Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan Golang untuk menukar gambar kepada kesan hitam putih dan halftone.

Pertama, kita perlu mengimport pakej yang diperlukan. Di Golang, anda boleh menggunakan pakej imej dan imej/warna untuk melaksanakan operasi pemprosesan imej. Kodnya adalah seperti berikut:

package main

import (
    "image"
    "image/color"
    "image/jpeg"
    "log"
    "os"
)
Salin selepas log masuk

Seterusnya, kita boleh menentukan fungsi untuk membaca fail imej. Kodnya adalah seperti berikut:

func loadImage(filename string) (image.Image, error) {
    file, err := os.Open(filename)
    if err != nil {
        return nil, err
    }
    defer file.Close()

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

    return img, nil
}
Salin selepas log masuk

Kemudian, kita boleh menentukan fungsi untuk menukar gambar berwarna kepada kesan hitam dan putih. Ini boleh dicapai dengan memproses setiap piksel imej. Kodnya adalah seperti berikut:

func toGrayscale(img image.Image) *image.Gray {
    bounds := img.Bounds()
    gray := image.NewGray(bounds)

    for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
        for x := bounds.Min.X; x < bounds.Max.X; x++ {
            oldColor := img.At(x, y)
            grayColor := color.GrayModel.Convert(oldColor)
            gray.Set(x, y, grayColor)
        }
    }

    return gray
}
Salin selepas log masuk

Seterusnya, kita boleh mentakrifkan fungsi untuk menukar gambar berwarna kepada kesan halftone. Kesan halftone boleh dicapai dengan memproses setiap piksel imej dan menukarkannya kepada set nilai warna yang terhad. Kodnya adalah seperti berikut:

func toHalftone(img image.Image) *image.Gray16 {
    bounds := img.Bounds()
    halftone := image.NewGray16(bounds)

    for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
        for x := bounds.Min.X; x < bounds.Max.X; x++ {
            oldColor := img.At(x, y)
            halftoneColor := color.Gray16Model.Convert(oldColor)
            halftone.Set(x, y, halftoneColor)
        }
    }

    return halftone
}
Salin selepas log masuk

Akhir sekali, kita boleh menentukan fungsi untuk menyimpan imej yang ditukar. Kodnya adalah seperti berikut:

func saveImage(img image.Image, filename string) error {
    file, err := os.Create(filename)
    if err != nil {
        return err
    }
    defer file.Close()

    err = jpeg.Encode(file, img, nil)
    if err != nil {
        return err
    }

    return nil
}
Salin selepas log masuk

Sekarang, kita boleh menulis fungsi utama untuk memanggil fungsi di atas dan mengujinya. Kodnya adalah seperti berikut:

func main() {
    // 读取图片文件
    img, err := loadImage("input.jpg")
    if err != nil {
        log.Fatal(err)
    }

    // 转换为黑白效果
    gray := toGrayscale(img)
    err = saveImage(gray, "output_gray.jpg")
    if err != nil {
        log.Fatal(err)
    }

    // 转换为半色调效果
    halftone := toHalftone(img)
    err = saveImage(halftone, "output_halftone.jpg")
    if err != nil {
        log.Fatal(err)
    }

    log.Println("图片转换完成")
}
Salin selepas log masuk

Dengan menjalankan kod di atas, kami boleh menukar fail imej input kepada kesan hitam putih dan halftone, dan menyimpannya sebagai fail output_gray.jpg dan output_halftone.jpg.

Di atas adalah cara menggunakan Golang untuk menukar gambar kepada kesan hitam putih dan halftone. Dengan contoh kod mudah ini, kami boleh melaksanakan fungsi pemprosesan imej dengan mudah di Golang. Semoga artikel ini dapat membantu anda!

Atas ialah kandungan terperinci Bagaimana untuk menukar gambar kepada kesan hitam putih dan halftone menggunakan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!