Files
go-pixelnebula/examples/07_format_conversion.go
2025-03-19 21:10:19 +08:00

56 lines
1.5 KiB
Go

package main
import (
"fmt"
"os"
"github.com/landaiqing/go-pixelnebula"
"github.com/landaiqing/go-pixelnebula/style"
)
// 格式转换示例
// 展示如何将SVG转换为其他格式
func main() {
// 创建一个新的PixelNebula实例
pn := pixelnebula.NewPixelNebula()
// 设置基本属性
pn.WithStyle(style.AfrohairStyle)
pn.WithTheme(0)
pn.WithSize(500, 500) // 使用较大尺寸以便转换后的图像清晰
// 添加一些动画效果
pn.WithRotateAnimation("env", 0, 360, 10, -1)
pn.WithGradientAnimation("env", []string{"#3498db", "#2ecc71", "#f1c40f"}, 5, -1, true)
// 1. 生成并保存SVG文件
svgData, err := pn.Generate("format-conversion", false).ToSVG()
if err != nil {
fmt.Printf("生成SVG失败: %v\n", err)
os.Exit(1)
}
// 保存SVG文件
err = os.WriteFile("format_conversion.svg", []byte(svgData), 0644)
if err != nil {
fmt.Printf("保存SVG文件失败: %v\n", err)
} else {
fmt.Println("成功生成SVG文件: format_conversion.svg")
}
// 2. 转换为Base64格式
base64Data, err := pn.Generate("format-conversion", false).ToBase64()
if err != nil {
fmt.Printf("转换为Base64失败: %v\n", err)
} else {
// 保存Base64数据到文件
err = os.WriteFile("format_conversion.base64.txt", []byte(base64Data), 0644)
if err != nil {
fmt.Printf("保存Base64文件失败: %v\n", err)
} else {
fmt.Println("成功生成Base64编码文件: format_conversion.base64.txt")
}
}
fmt.Println("格式转换示例完成!")
}