teks golang ke imej

PHPz
PHPzasal
2023-05-10 21:07:361451semak imbas

Baru-baru ini, semakin banyak laman web dan aplikasi telah mula menggunakan fungsi teks ke imej untuk melindungi privasi pengguna dan memastikan keselamatan maklumat. Oleh itu, mempelajari cara menukar teks kepada imej menggunakan Golang adalah kemahiran yang sangat berharga. Artikel ini akan menunjukkan kepada anda cara melaksanakan fungsi ini hanya dalam beberapa baris kod menggunakan Golang.

Pertama, kita perlu mengimport perpustakaan berikut:

import (
    "bytes"
    "image"
    "image/color"
    "image/draw"
    "image/png"
    "golang.org/x/image/font"
    "golang.org/x/image/font/basicfont"
    "golang.org/x/image/math/fixed"
)

Selepas mengimport perpustakaan yang diperlukan, kita perlu mencipta fungsi bernama GenerateTextImage() untuk menerima parameter dan menjana imej. Fungsi ini akan mengembalikan imej jenis []byte.

func GenerateTextImage(text string, width int, height int) []byte {
    // create a new image
    img := image.NewRGBA(image.Rect(0, 0, width, height))

    // set image background color to white
    white := color.RGBA{255, 255, 255, 255}
    draw.Draw(img, img.Bounds(), &image.Uniform{white}, image.ZP, draw.Src)

    // add text to image
    c := freetype.NewContext()
    c.SetDPI(72)
    c.SetFont(basicfont.NewDrawFont())
    c.SetFontSize(20)
    c.SetClip(img.Bounds())
    c.SetDst(img)
    c.SetSrc(image.Black)
    pt := freetype.Pt(10, 10+int(c.PointToFixed(20)>>6))
    _, err := c.DrawString(text, pt)
    if err != nil {
        fmt.Println(err)
    }

    // encode the image to png format and return the bytes
    var buff bytes.Buffer
    png.Encode(&buff, img)
    return buff.Bytes()
}

Dalam blok kod di atas, kami mula-mula mencipta imej RGBA kosong. Kami juga menetapkan warna latar belakang imej supaya ia berwarna putih.

Seterusnya, kami menambah teks pada imej. Kami menggunakan fungsi NewContext() daripada perpustakaan fon jenis bebas untuk mencipta konteks baharu dan menetapkan saiz fon dan fon. Kami juga menentukan saiz tetingkap yang akan ditambahkan teks. Kami kemudiannya menentukan hitam sebagai warna fon dan kedudukan teks pada imej.

Akhir sekali, kami mengekod imej ke dalam format PNG dan mengembalikannya sebagai kepingan bait.

Untuk memanggil fungsi ini, anda hanya perlu menghantar teks yang ingin anda tambahkan pada imej, lebar dan ketinggian imej. Contohnya:

text := "Hello, World!"
width := 200
height := 50
imageBytes := GenerateTextImage(text, width, height)

Dalam blok kod di atas, kami menambah "Hello, World!" pada imej, tetapkan lebar imej kepada 200 piksel dan ketinggian kepada 50 piksel dan simpan bait imej yang terhasil tatasusunan dalam pembolehubah imageBytes.

Ini adalah cara yang kemas untuk menukar teks kepada imej menggunakan Golang. Dengan menggunakan perpustakaan jenis bebas dan pakej imej daripada perpustakaan standard, kami boleh membuat imej teks berkualiti tinggi dengan mudah.

Atas ialah kandungan terperinci teks golang ke imej. 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
Artikel sebelumnya:c penukaran jenis golangArtikel seterusnya:c penukaran jenis golang