122 lines
3.1 KiB
Go
122 lines
3.1 KiB
Go
package main
|
|
|
|
import (
|
|
"image"
|
|
"image/color"
|
|
"log"
|
|
|
|
"git.lxtend.com/lixiangwuxian/imagedd/font2img"
|
|
"git.lxtend.com/lixiangwuxian/imagedd/sprite"
|
|
)
|
|
|
|
func main() {
|
|
board := sprite.NewNamedSpriteBoard()
|
|
{
|
|
whiteBackground := image.NewRGBA(image.Rect(0, 0, 200, 200))
|
|
for i := range whiteBackground.Bounds().Dx() {
|
|
for j := range whiteBackground.Bounds().Dy() {
|
|
whiteBackground.Set(i, j, color.White)
|
|
}
|
|
}
|
|
board.AddSprite(&sprite.Sprite{
|
|
Name: "background",
|
|
Image: whiteBackground,
|
|
Index: 0,
|
|
Position: image.Point{X: 0, Y: 0},
|
|
})
|
|
}
|
|
// {
|
|
// wordSprite := &sprite.Sprite{
|
|
// Name: "word",
|
|
// Index: 5,
|
|
// Position: image.Point{X: 0, Y: 0},
|
|
// }
|
|
// img, err := font2img.RenderCharToImage(font, '🤣', 90, color.Black)
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
// wordSprite.Image = img
|
|
// board.AddSprite(wordSprite)
|
|
// }
|
|
{
|
|
textSprite := &sprite.Sprite{
|
|
Name: "text",
|
|
Index: 5,
|
|
Position: image.Point{X: 10, Y: 12},
|
|
}
|
|
img, err := font2img.RenderTextToTrimmedImage(nil, "usss测试\n测试📧测✌试测\n试🥳🧁🍰\n🎁🎂🎈🎺🎉🎊\n📧🧿🌶无焊无缝🔋😂❤😍🤣😊🥺\n🙏💕😭😘👍\n😅👏测试测试", 12, color.Black, 0, 0)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
textSprite.Image = img
|
|
board.AddSprite(textSprite)
|
|
}
|
|
// {
|
|
// faceBytes, err := os.ReadFile("face.png")
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
// faceImage, err := png.Decode(bytes.NewReader(faceBytes))
|
|
// if err != nil {
|
|
// log.Fatal(err)
|
|
// }
|
|
// faceSprite := &sprite.Sprite{
|
|
// Name: "face",
|
|
// Image: faceImage,
|
|
// Index: 1,
|
|
// Position: image.Point{X: -100, Y: -100},
|
|
// }
|
|
// faceSprite.Rotate(math.Pi / 2)
|
|
// board.AddSprite(faceSprite)
|
|
// }
|
|
// {
|
|
// rect := image.NewRGBA(image.Rect(0, 0, 101, 101))
|
|
// rectSprite := &sprite.Sprite{
|
|
// Name: "rect",
|
|
// Image: rect,
|
|
// Index: 2,
|
|
// Position: image.Point{X: 20, Y: 20},
|
|
// }
|
|
// lineL := &sprite.Line{
|
|
// Start: image.Point{X: 0, Y: 100},
|
|
// End: image.Point{X: 50, Y: 0},
|
|
// Width: 1,
|
|
// Color: color.RGBA{0, 0, 0, 255},
|
|
// }
|
|
// lineL.AddToSprite(rectSprite)
|
|
// lineR := &sprite.Line{
|
|
// Start: image.Point{X: 100, Y: 100},
|
|
// End: image.Point{X: 50, Y: 0},
|
|
// Width: 1,
|
|
// Color: color.RGBA{0, 0, 0, 255},
|
|
// }
|
|
// lineR.AddToSprite(rectSprite)
|
|
// lineB := &sprite.Line{
|
|
// Start: image.Point{X: 0, Y: 100},
|
|
// End: image.Point{X: 100, Y: 100},
|
|
// Width: 1,
|
|
// Color: color.RGBA{0, 0, 0, 255},
|
|
// }
|
|
// lineB.AddToSprite(rectSprite)
|
|
// board.AddSprite(rectSprite)
|
|
// }
|
|
// {
|
|
// circleSprite := &sprite.Sprite{
|
|
// Name: "circle",
|
|
// Image: image.NewRGBA(image.Rect(0, 0, 101, 101)),
|
|
// Index: 3,
|
|
// Position: image.Point{X: 30, Y: 20},
|
|
// }
|
|
// for r := 15; r < 45; r++ {
|
|
// circle := &sprite.Circle{
|
|
// Center: image.Point{X: 50, Y: 50},
|
|
// Radius: r,
|
|
// Color: color.RGBA{0, 0, 255, 255},
|
|
// }
|
|
// circle.AddToSprite(circleSprite)
|
|
// }
|
|
// board.AddSprite(circleSprite)
|
|
// }
|
|
board.SaveToPng("test.png")
|
|
}
|