英文:
golang: print text in the image
问题
我正在尝试使用以下包:
"image/draw"
"image"
"image/jpeg"
但我希望能够在我的图像中打印任何文本或数字(也可以是文本)。
但是似乎Go语言的标准库中没有直接提供这样的功能。
有人可以帮我找到Go语言的解决方案吗?
英文:
I'm trying to use next packages
"image/draw"
"image"
"image/jpeg"
but I want to have possibility to print any text or numbers (which may also be text) in the my image.
But it looks like nothing from the box in Go to do this.
Can anyone help me with "GO way" solution for this?
答案1
得分: 9
我只找到了这一个,freetype-go。
是否有适合我需求的最佳且唯一的库呢?
答案2
得分: 4
请检查以下代码:
package main
import (
"github.com/fogleman/gg"
"log"
)
func main() {
const S = 1024
im, err := gg.LoadImage("src.jpg")
if err != nil {
log.Fatal(err)
}
dc := gg.NewContext(S, S)
dc.SetRGB(1, 1, 1)
dc.Clear()
dc.SetRGB(0, 0, 0)
if err := dc.LoadFontFace("/Library/Fonts/Arial.ttf", 96); err != nil {
panic(err)
}
dc.DrawStringAnchored("Hello, world!", S/2, S/2, 0.5, 0.5)
dc.DrawRoundedRectangle(0, 0, 512, 512, 0)
dc.DrawImage(im, 0, 0)
dc.DrawStringAnchored("Hello, world!", S/2, S/2, 0.5, 0.5)
dc.Clip()
dc.SavePNG("out.png")
}
这是一个使用github.com/fogleman/gg
库的Go语言代码示例。它加载一张名为src.jpg
的图片,并在一个大小为1024x1024的画布上绘制文字和图片。最后,它将绘制的结果保存为out.png
文件。
英文:
check this
package main
import (
"github.com/fogleman/gg"
"log"
)
func main() {
const S = 1024
im, err := gg.LoadImage("src.jpg")
if err != nil {
log.Fatal(err)
}
dc := gg.NewContext(S, S)
dc.SetRGB(1, 1, 1)
dc.Clear()
dc.SetRGB(0, 0, 0)
if err := dc.LoadFontFace("/Library/Fonts/Arial.ttf", 96); err != nil {
panic(err)
}
dc.DrawStringAnchored("Hello, world!", S/2, S/2, 0.5, 0.5)
dc.DrawRoundedRectangle(0, 0, 512, 512, 0)
dc.DrawImage(im, 0, 0)
dc.DrawStringAnchored("Hello, world!", S/2, S/2, 0.5, 0.5)
dc.Clip()
dc.SavePNG("out.png")
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论