FLUTTER ECOSYSTEM

NarekManukyan/story_maker

인스타그램 스토리처럼 만들 수 있는 패키지입니다. 이미지를 편집하고 텍스트 및 그라데이션과 같은 다른 콘텐츠를 추가하여 스토리 준비 상태로 만들 수 있습니다.

story_maker 프로젝트 이미지
Stars
7
Forks
11
최근 푸시(UTC)
2026. 4. 10.
프로젝트 상태
활성
Narek Manukyan GitHub avatar
GITHUB User

Narek Manukyan ↗

👨‍💻 Flutter Developer & Team Lead | Software & Hardware Engineer | Versatile in Mobile & Hardware Solutions | 🌟 Driving Innovation 🚀

M OneArmenia
언어DartRubySwiftKotlinObjective-C

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 5 개

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

story_maker License: MIT

A package for creating instagram like story, you can use this package to edit images and make it story ready by adding other contents over it like text, stickers, gradients, and color filters.

GIF 1 GIF 2

Getting Started

Add this to your package's pubspec.yaml file:

dependencies:
  story_maker: ^1.2.0

Example

import 'package:story_maker/story_maker.dart';

class _MyAppState extends State<MyApp> {
  File? image;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Story Designer Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () async {
                await [
                  Permission.photos,
                  Permission.storage,
                ].request();
                final picker = ImagePicker();
                await picker
                    .pickImage(source: ImageSource.gallery)
                    .then((file) async {
                  final File editedFile = await Navigator.of(context).push(
                    MaterialPageRoute(
                      builder: (context) => StoryMaker(
                        filePath: file!.path,
                      ),
                    ),
                  );
                  setState(() {
                    image = editedFile;
                  });
                  print('editedFile: ${image!.path}');
                });
              },
              child: const Text('Pick Image'),
            ),
            if (image != null)
              Expanded(
                child: Image.file(image!),
              ),
          ],
        ),
      ),
    );
  }
}

Advanced Usage with Customization
import 'package:story_maker/story_maker.dart';

// Example with custom theme, stickers, and done button
StoryMaker(
  filePath: imagePath,
  theme: StoryMakerTheme.dark(), // or StoryMakerTheme.light()
  customStickers: [
    StickerItem.emoji('🎉'),
    StickerItem.emoji('🔥'),
    StickerItem.image('/path/to/sticker.png'),
  ],
  customFontList: ['Roboto', 'Open Sans', 'Lato'],
  customTextColors: [
    Colors.red,
    Colors.blue,
    Colors.green,
  ],
  customGradients: [
    [Colors.purple, Colors.pink],
    [Colors.blue, Colors.cyan],
  ],
  doneButtonBuilder: (theme, onDone, isLoading) {
    return ElevatedButton(
      onPressed: isLoading ? null : onDone,
      style: ButtonStyle(
        backgroundColor: WidgetStateProperty.all(theme.buttonColor),
      ),
      child: isLoading
          ? CircularProgressIndicator()
          : Text('Save Story', style: TextStyle(color: theme.buttonTextColor)),
    );
  },
)
Available Features
Core Features
  • [x] Image Editing:

    • Image scaling and rotation
    • Pinch-to-zoom and pan gestures
    • Photo view with rotation support
  • [x] Text Editing:

    • Adding text to images with customizable:
      • Font family (with 50+ Google Fonts via google_fonts package)
      • Font size (adjustable slider from 14-74px)
      • Text color (extensive color palette with 20+ default colors)
      • Text background gradients (60+ gradient options)
    • Real-time text preview
    • Drag, rotate, and scale text items
    • Multiple text items support
  • [x] Background Gradients:

    • 60+ pre-built gradient options
    • Custom gradient support via customGradients parameter
    • Gradient selector with visual preview
  • [x] Stickers Support:

    • Emoji stickers (50+ default emojis)
    • Custom image/GIF stickers via StickerItem.image()
    • Customizable sticker list via customStickers parameter
    • Sticker selector with horizontal scrolling interface
    • Drag, rotate, and scale sticker items
  • [x] Color Filters:

    • 8 color filter options: None, Sepia, Grayscale, Vintage, Cool, Warm, Bright, Dark
    • Swipe left/right gestures for quick filter navigation
    • Filter name overlay display when selecting filters
    • Color filter picker with visual preview
    • Real-time filter application
  • [x] Theme Customization:

    • Complete UI theming system via StoryMakerTheme
    • Pre-built dark and light theme variants
    • Customizable colors (background, buttons, icons, text, borders)
    • Customizable border radius and shadows
    • Theme provider system for easy access throughout widget tree
    • Support for custom button styles and decorations
  • [x] Customization Options:

    • Custom done button builder with theme, callback, and loading state access
    • Customizable font lists via customFontList parameter
    • Customizable text color lists via customTextColors parameter
    • Customizable gradient color lists via customGradients parameter
    • Customizable animation duration via animationsDuration parameter
  • [x] User Experience:

    • Haptic feedback on interactions
    • Style name overlay when changing font families
    • Filter name overlay when changing color filters
    • Delete item by dragging to bottom area
    • Smooth animations and transitions
    • Loading state during image export
  • [x] Developer Experience:

    • Barrel files for organized imports
    • Comprehensive documentation
    • Type-safe APIs
    • Backward compatible updates

"Buy Me A Coffee"