Golang ialah bahasa pengaturcaraan popular yang sesuai untuk membina aplikasi dan perkhidmatan web. Semasa pembangunan, kadangkala kita perlu menukar fon teks untuk mencapai kesan bacaan atau reka bentuk yang lebih baik. Jadi bagaimana untuk menukar fon dalam golang? Mari kita ketahui bersama di bawah.
Ingat semasa kita belajar pemprosesan imej golang, kita menggunakan pakej imej dan lukisan? Kedua-dua pakej ini membantu kami memproses dan memanipulasi imej. Dalam kedua-dua pakej ini, terdapat jenis yang sangat penting yang dipanggil fon, yang mentakrifkan format fon dan koleksi semua glyph yang tersedia. Oleh itu, untuk menukar fon, kita perlu melaksanakannya melalui pakej fon.
Pertama, kita perlu memilih fon baharu, yang boleh diperoleh daripada fail tempatan atau daripada Internet. Kod untuk memuatkan fail fon dalam fail tempatan adalah seperti berikut:
import ( "fmt" "golang.org/x/image/font" "golang.org/x/image/font/opentype" "io/ioutil" "os" ) func LoadFont(path string, size float64) (font.Face, error) { fontBytes, err := ioutil.ReadFile(path) if err != nil { return nil, err } font, err := opentype.Parse(fontBytes) if err != nil { return nil, err } return opentype.NewFace(font, &opentype.FaceOptions{ Size: size, DPI: 72, Hinting: font.HintingFull, }), nil } func main() { fontFace, err := LoadFont("path/to/font.ttf", 16) if err != nil { fmt.Fprintf(os.Stderr, "Error loading font: %v ", err) return } // Use fontFace to draw text }
Dalam kod di atas, kami menggunakan pustaka opentype untuk memuatkan fail fon daripada fail tempatan dan menentukan saiz fon untuknya. Kemudian buat fon baharu menggunakan kaedah NewFace(), yang memerlukan objek fon dan parameter pilihan fon. Akhir sekali, kita boleh menggunakan font objek fon yang dikembalikan fontFace untuk melukis teks.
Jika kita ingin menggunakan fon daripada Internet, kita boleh menggunakan Google Fonts API. Kami hanya perlu memberikan nama fon yang diperlukan dan API akan mengembalikan fail CSS yang mengandungi fail fon. Sebagai contoh, jika kami ingin menggunakan fon "Roboto" dalam Google Font, kami hanya perlu menggunakan kod berikut:
import ( "fmt" "github.com/golang/freetype/truetype" "golang.org/x/image/font" "golang.org/x/image/font/gofont/goregular" "net/http" "os" ) func LoadGoogleFont(fontName string, size float64) (font.Face, error) { resp, err := http.Get(fmt.Sprintf("https://fonts.googleapis.com/css?family=%s", fontName)) if err != nil { return nil, err } defer resp.Body.Close() truetypeFont, err := truetype.Parse(goregular.TTF) if err != nil { return nil, err } face := truetype.NewFace(truetypeFont, &truetype.Options{ Size: size, DPI: 72, Hinting: font.HintingFull, }) return face, nil } func main() { fontFace, err := LoadGoogleFont("Roboto", 16) if err != nil { fmt.Fprintf(os.Stderr, "Error loading font: %v ", err) return } // Use fontFace to draw text }
Dalam kod di atas, kami menggunakan kaedah http.Get() untuk mendapatkan Fail CSS dalam Google Font. Kemudian, menggunakan fon lalai daripada pustaka goregular, cipta objek fon truetype dan gunakan kaedah NewFace() untuk mencipta fon baharu. Akhir sekali, kita boleh menggunakan font objek fon yang dikembalikan fontFace untuk melukis teks.
Setelah kami memperoleh font objek fon yang diperlukan, kami boleh menggunakan pakej lukis untuk melukis teks pada imej, seperti yang ditunjukkan di bawah:
import ( "image" "image/color" "image/draw" "os" ) func DrawText(img *image.RGBA, x, y int, text string, fontFace font.Face) { drawer := &font.Drawer{ Dst: img, Src: image.NewUniform(color.Black), Face: fontFace, } drawer.DrawString(text, fixed.P(x, y)) } func main() { fontFace, err := LoadFont("path/to/font.ttf", 16) if err != nil { fmt.Fprintf(os.Stderr, "Error loading font: %v ", err) return } // Create a new image img := image.NewRGBA(image.Rect(0, 0, 200, 200)) // Draw some text DrawText(img, 10, 10, "Hello, world!", fontFace) }
Dalam kod di atas, kami mula-mula mencipta imej baharu object img, dan kemudian mentakrifkan fungsi DrawText(), yang menggunakan font object fontFace dan koordinat yang diberikan untuk melukis teks ke dalam img. Akhir sekali, kita boleh memanggil fungsi DrawText() dalam fungsi main() untuk mencapai keperluan kita.
Dalam artikel ini, kami memperkenalkan cara menukar fon dalam golang, mendapatkan fon daripada fail tempatan atau internet dan melukis teks pada imej. Dengan menggunakan teknik ini, kami boleh menambah kesan visual yang lebih baik pada aplikasi kami dengan mudah.
Atas ialah kandungan terperinci golang tukar font. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!