Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bincangkan cara menetapkan fon dalam Golang

Bincangkan cara menetapkan fon dalam Golang

PHPz
PHPzasal
2023-04-12 19:57:361104semak imbas

Fon yang baik boleh membuatkan orang berasa sangat selesa, dan ia juga banyak membantu semasa menulis kod. Pembangun bahasa Go jelas menyedari perkara ini, jadi mereka menyediakan pelbagai kaedah untuk menetapkan fon.

Di bawah, kami akan membincangkan cara menetapkan fon di Golang.

  1. Gunakan pakej go-fonts

Pakej go-fonts ialah pakej yang ringkas dan mudah digunakan di mana kita boleh menggunakan fon sumber terbuka biasa (seperti sebagai Ubuntu, Monaco, dll. ) untuk mencantikkan kod kami. Menggunakan pakej ini juga sangat mudah, cuma tambahkan baris berikut pada kod:

import "github.com/visualfc/go-fonts"
func init() {  
    gofonts.Family = `Ubuntu Mono, Monaco`
}

Ini akan menetapkan fon kepada Ubuntu Mono atau Monaco, anda juga boleh menambah nama fon lain, dan kemudian pergi - fon akan mencari dan menggunakan fon ini.

  1. Gunakan perpustakaan Freetype

Freetype ialah perpustakaan fon sumber terbuka merentas platform yang boleh digunakan dalam persekitaran Windows, Linux dan MacOS. Untuk menggunakan Freetype di Golang, kita perlu memasang pustaka Freetype terlebih dahulu. Gunakan arahan berikut untuk memasangnya di bawah Ubuntu:

sudo apt-get install libfreetype6 libfreetype6-dev

Selepas itu, kita perlu memasang pustaka pengikat Golang Freetype. Gunakan arahan berikut untuk memasang:

go get -u github.com/golang/freetype

Contoh kod:

//引入必要的包
import (
    "image"
    "image/color"
    "image/draw"
    "github.com/golang/freetype"
    "golang.org/x/image/font/gofont/goregular"
)

// 生成文字图像
func getTextImage(text string) (img *image.RGBA) {

    fontContext := freetype.NewContext()

    // 设置字体库为goregular
    fontContext.SetFont(goregular.TTF)
    fontContext.SetFontSize(18)

    imgSize := image.Point{X: 200, Y: 60}

    img = image.NewRGBA(image.Rectangle{Max: imgSize})

    draw.Draw(img, img.Bounds(), &image.Uniform{color.White}, image.Point{}, draw.Src)

    fontContext.SetDst(img)
    fontContext.SetClip(img.Bounds())
    fontContext.SetSrc(image.Black)

    txt := []byte(text)

    fontContext.DrawString(string(txt), freetype.Pt(5, 30))

    return
}

Gunakan perpustakaan Freetype untuk menjana imej teks Teknologi ini boleh digunakan untuk menjana beberapa imej fon yang hebat, seperti sebagai penjanaan logo, dsb.

Ringkasan

Di atas adalah dua kaedah untuk menetapkan fon dalam Golang Anda boleh memilih kaedah yang sepadan mengikut keperluan anda. Menggunakan pakej go-fonts boleh menggunakan fon sedia ada dengan mudah, manakala menggunakan perpustakaan Freetype boleh mengawal gaya fon dan menjana imej teks dan operasi lain dengan lebih fleksibel.

Atas ialah kandungan terperinci Bincangkan cara menetapkan fon dalam Golang. 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