🎉 Initial commit

This commit is contained in:
2025-03-19 21:10:19 +08:00
commit 86c8755f79
70 changed files with 6915 additions and 0 deletions

View File

@@ -0,0 +1,108 @@
package main
import (
"fmt"
"os"
"github.com/landaiqing/go-pixelnebula"
"github.com/landaiqing/go-pixelnebula/style"
)
// SVG构建器链式调用示例
// 展示如何使用链式调用API创建头像
func main() {
// 创建一个新的PixelNebula实例
pn := pixelnebula.NewPixelNebula().WithDefaultCache()
// 示例1: 基本链式调用
// 使用链式调用创建并保存头像
svg1, err := pn.Generate("chain-example-1", false).
SetStyle(style.AfrohairStyle).
SetTheme(0).
SetSize(200, 200).
ToSVG()
if err != nil {
fmt.Printf("生成基本链式调用SVG失败: %v\n", err)
} else {
// 保存到文件
err = os.WriteFile("basic_chain.svg", []byte(svg1), 0644)
if err != nil {
fmt.Printf("保存基本链式调用SVG文件失败: %v\n", err)
} else {
fmt.Println("成功生成基本链式调用头像: basic_chain.svg")
}
}
// 示例2: 带动画的链式调用
// 使用链式调用添加多种动画效果
svg2, err := pn.Generate("chain-example-2", false).
SetStyle(style.GirlStyle).
SetTheme(1).
SetSize(300, 300).
// 添加旋转动画
SetRotateAnimation("env", 0, 360, 10, -1).
// 添加淡入淡出动画
SetFadeAnimation("eyes", "1", "0.3", 2, -1).
// 添加变换动画
SetTransformAnimation("mouth", "scale", "1 1", "1.2 1.2", 1, -1).
// 添加颜色变换动画
SetColorAnimation("top", "fill", "#9b59b6", "#e74c3c", 3, -1).
// 构建并获取SVG
ToSVG()
if err != nil {
fmt.Printf("生成带动画的链式调用SVG失败: %v\n", err)
} else {
// 保存到文件
err = os.WriteFile("animated_chain.svg", []byte(svg2), 0644)
if err != nil {
fmt.Printf("保存带动画的链式调用SVG文件失败: %v\n", err)
} else {
fmt.Println("成功生成带动画的链式调用头像: animated_chain.svg")
}
}
// 示例3: 直接保存到文件的链式调用
err = pn.Generate("chain-example-3", false).
SetStyle(style.BlondStyle).
SetTheme(2).
SetSize(250, 250).
// 添加波浪动画
SetWaveAnimation("clo", 5, 0.2, "horizontal", 4, -1).
// 添加闪烁动画
SetBlinkAnimation("top", 0.3, 1.0, 4, 6, -1).
// 构建并直接保存到文件
Build().
ToFile("direct_file_chain.svg")
if err != nil {
fmt.Printf("直接保存到文件的链式调用失败: %v\n", err)
} else {
fmt.Println("成功生成并直接保存头像到文件: direct_file_chain.svg")
}
// 示例4: 转换为Base64的链式调用
base64, err := pn.Generate("chain-example-4", false).
SetStyle(style.BlondStyle).
SetTheme(0).
SetSize(200, 200).
// 添加旋转动画
SetRotateAnimation("head", 0, 360, 15, -1).
// 构建并转换为Base64
ToBase64()
if err != nil {
fmt.Printf("转换为Base64的链式调用失败: %v\n", err)
} else {
// 保存Base64编码到文件
err = os.WriteFile("base64_avatar.txt", []byte(base64), 0644)
if err != nil {
fmt.Printf("保存Base64编码到文件失败: %v\n", err)
} else {
fmt.Println("成功生成Base64编码头像并保存到文件: base64_avatar.txt")
}
}
fmt.Println("SVG构建器链式调用示例完成")
}