From 836c9711ba1a3620513a59dc5c0ae6b2924bc039 Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Sat, 10 May 2025 13:06:18 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 164 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 84 insertions(+), 80 deletions(-) diff --git a/main.go b/main.go index 37b131a..6da44ba 100644 --- a/main.go +++ b/main.go @@ -1,9 +1,13 @@ package main import ( + "bytes" "image" "image/color" + "image/png" "log" + "math" + "os" "git.lxtend.com/lixiangwuxian/imagedd/font2img" "git.lxtend.com/lixiangwuxian/imagedd/sprite" @@ -25,97 +29,97 @@ func main() { 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) - // } + { + wordSprite := &sprite.Sprite{ + Name: "word", + Index: 5, + Position: image.Point{X: -30, Y: 30}, + } + img, err := font2img.RenderCharToImage(nil, '🀣', 40, 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) + img, err := font2img.RenderTextToTrimmedImage(nil, "ddjdgjζ΅‹θ―•\nζ΅‹θ―•πŸ“§ζ΅‹βœŒθ―•ζ΅‹\nθ―•πŸ₯³πŸ§πŸ°\nπŸŽπŸŽ‚πŸŽˆπŸŽΊπŸŽ‰πŸŽŠ\nπŸ“§πŸ§ΏπŸŒΆadadadadaπŸ”‹πŸ˜‚β€πŸ˜πŸ€£πŸ˜ŠπŸ₯Ί\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) - // } + { + 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: 20, + 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.0; r < 45.0; r += 0.01 { + 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") }