Flutter艺术背景生成插件gen_art_bg的使用

Flutter艺术背景生成插件gen_art_bg的使用

简介

gen_art_bg 是一个用于生成动画艺术背景的Flutter插件。它提供了多种不同的艺术效果,可以为您的应用程序添加独特的视觉体验。

pub package License: MIT Codacy Badge

Gen Art Backgrounds GIF

Flutter Animated Generative Art Backgrounds collection.

使用方法

示例代码

WaveLineGrid 示例

import 'package:flutter/material.dart';
import 'package:gen_art_bg/gen_art_bg.dart'; // 确保导入正确的包名

void main() {
  runApp(const MaterialApp(
    debugShowCheckedModeBanner: false,
    home: Scaffold(
      body: WaveLineGrid(
        columns: 15,
        rows: 25,
        locationConstant: 100,
        animationDuration: Duration(seconds: 5),
      ),
    ),
  ));
}

其他示例

AnimatedSquares 示例

AnimatedSquares(
  squareCount: 40, 
  animationDuration: 10,
  margin: 0, 
  strokeWidth: 1.5,
  palette: [
    Color(0xFFabcd5e),
    Color(0xFF14976b),
    Color(0xFF2b67af),
    Color(0xFF62b6de),
    Color(0xFFf589a3),
    Color(0xFFef562f),
    Color(0xFFfc8405),
    Color(0xFFf9d531),
  ],
)

AnimatedLinesGradient 示例

AnimatedLinesGradient(
  animationDuration: 5,
)

AnimatedLines 示例

AnimatedLines(
  numberOfLines: 30,
  lineLength: 200, 
  lineColor: Colors.black,
  strokeWidth: 3, 
  animationDuration: 10,
)

GridOfLines 示例

GridOfLines(
  animationDuration: 5,
  gridSize: 10, 
  strokeWidth: 0.015,
  color: Colors.black,
)

MolnarArt 示例

MolnarArt(
  rows: 8,
  cols: 8,
  n: 12,
  colSeq: [
    Color(0xFFC4951B),
    Color(0xFF9E3C52),
    Color(0xFF1D6383),
    Color(0xFF19315B),
    Color(0xFF0D1280),
    Color(0xFFADD27D),
    Color(0xFFBD1528),
    Color(0xFF0D4D89),
    Color(0xFFAC4075),
    Color(0xFFAB933C),
    Color(0xFF7EB741),
    Color(0xFF1C2266),
  ],
)

PerlinNoise 示例

PerlinNoise(
  width: 40,
  height: 40,
  frequency: 5,
)

PulsedCircleGrid 示例

PulsedCircleGrid(
  cellSize: 36,
  marginSize: 72,
  circleDiameter: 27,
  animationDuration: Duration(seconds: 5),
  numberOfRowsColumns: 12, 
)

RandomNoise 示例

RandomNoise(
  duration: Duration(seconds: 10),
  dotSize: 13,
  dotSpacing: 11,
)

RandomSquare 示例

RandomSquare(
  gridSize: 10,
  updateInterval: Duration(seconds: 1),
)

SpiralWave 示例

SpiralWave(
  size: 10,
  k: 20,
)

WaveDotGrid 示例

WaveDotGrid(
  columns: 15,
  rows: 25, 
  locationConstant: 100,
)

DynamicShapes 示例

DynamicShapes(
  colors: [Colors.blue, Colors.red, Colors.green],
  maxShapes: 150,
  minShapeSize: 0.02,
  maxShapeSize: 0.08,
  minActionPoints: 3,
  maxActionPoints: 6,
  animationSpeed: 1.5,
  backgroundColor: Colors.black,
)

ExpandingCircles 示例

ExpandingCircles(
  colors: [
    Colors.blue,
    Colors.red,
    Colors.green,
    // ... other colors
  ],
  numberOfMovers: 15,
  gridSize: 50,
  blockScale: 0.75,
  minSpeed: 5.0,
  maxSpeed: 20.0,
  backgroundColor: Color(0xFF050505),
)

BubbleField 示例

BubbleField(
  backgroundColor: Colors.black,
  circleColor: Colors.white,
  animationSpeed: 1.0,
  gridSize: 100,
)

WaveField 示例

WaveField(
  gridStep: 15,
  backgroundColor: Colors.black,
  squareColor: Colors.white,
  animationSpeed: 0.7,
)

AsciiCube 示例

AsciiCube(
  backgroundColor: Colors.black,
  textColor: Colors.white,
  animationSpeed: 1.0,
  scale: 1.0,
  showDots: false, // like rolling dice
  edgeChars: ['@', '#', '*', '+', '=', '&'],
  dotChar: '●',
)

展示案例

WaveDotGrid PerlinNoise RandomSquare SpiralWave
WaveDotGrid PerlinNoise RandomSquare SpiralWave
GridOfLines AnimatedSquares AnimatedLines AnimatedLinesGradient
GridOfLines AnimatedSquares AnimatedLines AnimatedLinesGradient
RandomNoise MolnarArt ExpandingCircles WaveLineGrid
RandomNoise MolnarArt ExpandingCircles WaveLineGrid
PulsedCircleGrid DynamicShapes WaveField BubbleField
PulsedCircleGrid DynamicShapes WaveField BubbleField
AsciiCube
AsciiCube

Bug报告与功能请求

如果您遇到任何问题,请随时在GitHub上提交issue。如果您认为该库缺少某些功能,也请在GitHub上提出需求。欢迎提交Pull Request。

注意事项

这是我的第一个插件包,如果您能帮助我改进它或添加新的作品,我将非常感激。目前,部分作品可能在移动设备上表现不佳,因为这些作品主要针对Web端进行了优化。

许可证

MIT License

更多信息

支持项目:

参考资源

如果您知道其他相关资源,请务必告知我。

p5.js 创作者

Processing 创作者


希望以上内容对您有所帮助!如果您有任何问题或需要进一步的帮助,请随时提问。


更多关于Flutter艺术背景生成插件gen_art_bg的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter艺术背景生成插件gen_art_bg的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用Flutter插件gen_art_bg来生成艺术背景的示例代码。请注意,此插件的具体API和功能可能会随着版本的更新而变化,因此以下代码基于插件的通用使用方式编写。如果插件已经更新,请参考最新的文档和API。

首先,你需要在你的Flutter项目中添加gen_art_bg插件。在你的pubspec.yaml文件中添加以下依赖项:

dependencies:
  flutter:
    sdk: flutter
  gen_art_bg: ^最新版本号  # 替换为插件的实际最新版本号

然后,运行flutter pub get来安装依赖项。

接下来,在你的Flutter项目中创建一个新的Dart文件(例如main.dart),并编写以下代码来使用gen_art_bg插件生成艺术背景:

import 'package:flutter/material.dart';
import 'package:gen_art_bg/gen_art_bg.dart';  // 导入插件

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Art Background Generator'),
        ),
        body: Center(
          child: ArtBackgroundGenerator(),
        ),
      ),
    );
  }
}

class ArtBackgroundGenerator extends StatefulWidget {
  @override
  _ArtBackgroundGeneratorState createState() => _ArtBackgroundGeneratorState();
}

class _ArtBackgroundGeneratorState extends State<ArtBackgroundGenerator> {
  late Uint8List _backgroundImage;

  @override
  void initState() {
    super.initState();
    _generateArtBackground();
  }

  Future<void> _generateArtBackground() async {
    // 假设插件提供了一个名为generateArtBackground的异步函数来生成背景
    // 注意:这里的函数名和参数是假设的,具体请参考插件的文档
    final Uint8List? backgroundImage = await GenArtBg.generateArtBackground(
      width: 1080,  // 背景宽度
      height: 1920, // 背景高度
      // 其他可能的参数,如颜色、样式等,具体请参考插件文档
    );

    if (backgroundImage != null) {
      setState(() {
        _backgroundImage = backgroundImage;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: BoxDecoration(
        image: DecorationImage(
          image: MemoryImage(_backgroundImage),
          fit: BoxFit.cover,
        ),
      ),
      child: _backgroundImage.isNotEmpty
          ? Center(
              child: Text(
                'Art Background Generated!',
                style: TextStyle(color: Colors.white, fontSize: 24),
              ),
            )
          : CircularProgressIndicator(), // 显示加载指示器直到背景生成完成
    );
  }
}

注意事项

  1. 上面的代码示例假设gen_art_bg插件提供了一个名为generateArtBackground的异步函数来生成艺术背景。实际的函数名和参数可能会不同,请务必参考插件的官方文档。

  2. 由于gen_art_bg插件可能并没有一个完全符合上述示例的API,因此你可能需要根据插件的实际API进行相应的调整。

  3. 插件的最新版本号需要你在添加依赖项时自行查找并替换。

  4. 在实际使用中,你可能需要处理更多的错误情况和边缘情况,例如网络错误、生成失败等。

希望这个示例代码能帮助你开始使用gen_art_bg插件来生成艺术背景。如果你有任何其他问题或需要进一步的帮助,请随时提问。

回到顶部