Récemment, de plus en plus de sites Web et d'applications ont commencé à utiliser la fonction de conversion texte-image pour protéger la vie privée des utilisateurs et assurer la sécurité des informations. Par conséquent, apprendre à convertir du texte en images à l’aide de Golang est une compétence très précieuse. Cet article vous montrera comment implémenter cette fonctionnalité en quelques lignes de code à l'aide de Golang.
Tout d'abord, nous devons importer les bibliothèques suivantes :
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" )
Après avoir importé les bibliothèques requises, nous devons créer une fonction appelée GenerateTextImage()
pour accepter les paramètres et générer l'image. Cette fonction renverra une image de type []byte
. GenerateTextImage()
的函数以接受参数并生成图像。此函数将返回一个 []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() }
在上述代码块中,我们首先创建了一个空白的 RGBA 图像。我们还设置了图像背景的颜色,使其为白色。
接下来,我们添加文本到图像中。我们使用 freetype 字体库中的 NewContext()
函数创建一个新的上下文,并设置字体和字体大小。我们还指定要添加文本的窗口大小。然后,我们指定黑色作为字体的颜色,并在图像上指定文本位置。
最后,我们将图像编码为 PNG 格式,并将其返回为字节切片。
要调用此函数,您只需要传递要在图像中添加的文本、图像的宽度和高度即可。例如:
text := "Hello, World!" width := 200 height := 50 imageBytes := GenerateTextImage(text, width, height)
在上述代码块中,我们将 "Hello, World!" 添加到图像中,设置图像的宽度为 200 像素,高度为 50 像素,并将生成的图像字节数组存储在 imageBytes
rrreee
NewContext()
de la bibliothèque de polices freetype pour créer un nouveau contexte et définir la police et la taille de la police. Nous précisons également la taille de la fenêtre à laquelle le texte sera ajouté. Nous spécifions ensuite le noir comme couleur de police et la position du texte sur l'image. 🎜🎜Enfin, nous encodons l'image au format PNG et la renvoyons sous forme de tranche d'octets. 🎜🎜Pour appeler cette fonction, il vous suffit de transmettre le texte que vous souhaitez ajouter dans l'image, la largeur et la hauteur de l'image. Par exemple : 🎜rrreee🎜Dans le bloc de code ci-dessus, nous ajoutons "Hello, World!" à l'image, définissons la largeur de l'image sur 200 pixels et la hauteur sur 50 pixels, et stockons le tableau d'octets de l'image résultant dans variable imageBytes
. 🎜🎜C'est un moyen simple de convertir du texte en image à l'aide de Golang. En utilisant la bibliothèque freetype et les packages d'images de la bibliothèque standard, nous pouvons facilement créer des images texte de haute qualité. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!