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!