Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev2.0.1

widgets_to_image

Um pacote poderoso do Flutter para converter qualquer widget em imagens de alta qualidade com formatos personalizáveis, configurações de qualidade e recursos avançados.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
26,3 mil
Curtidas
225
Pontos Pub
160

Instalar pacote

flutter pub add widgets_to_image

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

widgets_to_image é um pacote Flutter que permite aos desenvolvedores converter qualquer widget em imagens de alta qualidade, com suporte a diversos formatos, configurações personalizáveis de qualidade e opções avançadas de renderização. É ideal para gerar capturas de tela, pré-visualizações ou ativos exportáveis diretamente dentro dos aplicativos. O pacote funciona em todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, tornando-o altamente versátil para projetos multiplataforma. Com uma API simples, integra-se perfeitamente em fluxos de teste, visualizações de UI e geração de conteúdo dinâmico.

Casos de uso

  • Gerando telas de aplicativos programaticamente
  • Criando visualizações de interface em desenvolvimento
  • Exportar widgets como imagens para compartilhar
  • Testes automatizados com validação visual
  • Ferramentas de design de edifícios dentro de aplicativos Flutter

Principais recursos

  • Suporte para múltiplos formatos de imagem
  • Qualidade e tamanho de imagem personalizáveis
  • Compatibilidade multiplataforma
  • Integração fácil com widgets existentes
  • Opções avançadas de renderização, como cor de fundo e preenchimento

Indicado para

  • Desenvolvedores de ferramentas de visualização de UI
  • Equipes que exigem geração automática de capturas de tela
  • Aplicativos que precisam de exportação dinâmica de imagens
  • Engenheiros de automação de testes
  • Aplicações Flutter centradas no design

Considerações

  • Impacto no desempenho ao renderizar widgets complexos
  • Uso de memória para imagens grandes ou de alta resolução
  • Requer tratamento adequado da renderização assíncrona
  • Limitado à saída de imagem estática (sem animação)
  • Pode ser necessário configurar especificamente a plataforma para melhores resultados

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Widgets To Image

pub package License: MIT Demo

A powerful Flutter package to convert any widget into high-quality images with customizable formats, quality settings, and advanced features.

🌐 Live Demo

Try the interactive demo →

Experience the package capabilities with our modern, professional demo featuring:

  • 🎯 Basic widget capture examples
  • ⚙️ Advanced configuration options
  • 🎭 Animation capture demonstrations
  • 📱 Responsive design with Material 3

Demo

✨ Features

  • 🎯 Simple API - Convert any widget to image with just a few lines of code
  • 🖼️ Multiple Formats - Support for PNG, JPEG, Raw RGBA, and Raw Unmodified formats
  • ⚙️ Customizable Options - Control pixel ratio, quality, animations, and delays
  • 🎨 High Quality - Generate high-resolution images with custom pixel ratios
  • 🔄 Animation Support - Capture animated widgets with proper timing
  • 📱 Cross Platform - Works on iOS, Android, Web, macOS, Windows, and Linux
  • 🧪 Well Tested - Comprehensive test suite ensuring reliability
  • 📚 Rich Documentation - Detailed examples and API documentation

🚀 Getting Started

Installation

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

dependencies:
  widgets_to_image: ^2.0.0

Install it using the command line:

flutter pub get

Import the package:

import 'package:widgets_to_image/widgets_to_image.dart';

📖 Usage

Basic Usage
// Create a controller
WidgetsToImageController controller = WidgetsToImageController();

// Wrap your widget
WidgetsToImage(
  controller: controller,
  child: Container(
    width: 200,
    height: 100,
    color: Colors.blue,
    child: const Center(
      child: Text(
        'Hello World!',
        style: TextStyle(color: Colors.white, fontSize: 20),
      ),
    ),
  ),
)

// Capture the widget
Uint8List? bytes = await controller.capture();
Advanced Usage with Options
// Capture with custom options
Uint8List? bytes = await controller.capture(
  options: const CaptureOptions(
    format: ImageFormat.jpeg,
    pixelRatio: 3.0,
    quality: 95,
    waitForAnimations: true,
    delayMs: 100,
  ),
);
Convenience Methods
// Capture as PNG with high resolution
Uint8List? pngBytes = await controller.capturePng(
  pixelRatio: 3.0,
  waitForAnimations: true,
);

// Capture as JPEG with custom quality
Uint8List? jpegBytes = await controller.captureJpeg(
  quality: 90,
  pixelRatio: 2.0,
);
Reactive UI with Builder
WidgetsToImageBuilder(
  controller: controller,
  builder: (context, isCapturing, capture) {
    return Column(
      children: [
        if (isCapturing)
          const CircularProgressIndicator()
        else
          ElevatedButton(
            onPressed: () async {
              final bytes = await capture();
              // Handle the captured bytes
            },
            child: const Text('Capture Widget'),
          ),
      ],
    );
  },
)
Error Handling
try {
  final bytes = await controller.capture();
  // Success - use the bytes
} on CaptureException catch (e) {
  // Handle specific capture errors
  print('Capture failed: ${e.message}');
  if (e.originalError != null) {
    print('Caused by: ${e.originalError}');
  }
} catch (e) {
  // Handle other errors
  print('Unexpected error: $e');
}
Lifecycle Callbacks
controller.onCaptureStart = () {
  print('Capture started');
};

controller.onCaptureComplete = (bytes) {
  print('Capture completed with ${bytes.length} bytes');
};

controller.onCaptureError = (error) {
  print('Capture failed: ${error.message}');
};

🔧 API Reference

CaptureOptions
Property Type Default Description
pixelRatio double 1.0 The pixel ratio for the captured image
format ImageFormat ImageFormat.png The output image format
quality int 95 Quality for JPEG format (0-100)
waitForAnimations bool false Wait for animations before capturing
delayMs int 0 Additional delay in milliseconds
ImageFormat
  • ImageFormat.png - PNG format with transparency support
  • ImageFormat.jpeg - JPEG format with quality control
  • ImageFormat.rawRgba - Raw RGBA pixel data
  • ImageFormat.rawUnmodified - Raw unmodified pixel data
WidgetsToImageController Methods
  • capture({CaptureOptions options}) - Capture with custom options
  • capturePng({...}) - Convenience method for PNG capture
  • captureJpeg({...}) - Convenience method for JPEG capture
  • dispose() - Clean up resources
WidgetsToImage Properties
  • controller - The capture controller (required)
  • child - The widget to capture
  • clipBehavior - Whether to clip the child widget

📱 Example App

The package includes a comprehensive example app demonstrating:

  • Basic widget capture
  • Advanced options configuration
  • Animated widget capture
  • Different image formats
  • Error handling
  • Reactive UI updates

Run the example:

cd example
flutter run

🛠️ Platform Support

Platform Support
Android ✅
iOS ✅
Web ✅
macOS ✅
Windows ✅
Linux ✅

🤝 Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Flutter team for the amazing framework
  • Community contributors for feedback and improvements

📞 Support


Made with ❤️ by Mohamed Abdo phone

MacOS

phone

Categorias

Repositório-fonte

Projetos que usam este pacote