refactor: 优化测试函数

This commit is contained in:
lixiangwuxian 2025-05-10 13:06:18 +08:00
parent 56092990f0
commit 836c9711ba

164
main.go
View File

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