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") }