Recently, more and more websites and applications have begun to use the text-to-image function to protect users' privacy and ensure the security of information. Therefore, learning how to convert text into images using Golang is a very valuable skill. This article will show you how to implement this functionality in just a few lines of code using Golang.
First, we need to import the following libraries:
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" )
After importing the required libraries, we need to create a function named GenerateTextImage()
to accept parameters and generate image. This function will return an image of type []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() }
In the above code block, we first create a blank RGBA image. We also set the color of the image background so that it is white.
Next, we add text to the image. We use the NewContext()
function from the freetype font library to create a new context and set the font and font size. We also specify the window size to which the text will be added. We then specify black as the font color and the text position on the image.
Finally, we encode the image into PNG format and return it as a byte slice.
To call this function, you just need to pass the text you want to add to the image, the width and height of the image. For example:
text := "Hello, World!" width := 200 height := 50 imageBytes := GenerateTextImage(text, width, height)
In the above code block, we add "Hello, World!" to the image, set the width of the image to 200 pixels and the height to 50 pixels, and store the resulting image byte array in the imageBytes
variable.
This is a simple way to convert text to image using Golang. By using the freetype library and the image packages from the standard library, we can easily create high-quality text images.
The above is the detailed content of golang text to image. For more information, please follow other related articles on the PHP Chinese website!