Buscar categorias, pacotes e repositórios

Capa de flutter_blurhash
Detalhes do pacotev0.9.1

flutter_blurhash

Representação compacta de espaço reservado para uma imagem. Codifique uma imagem borrada com menos de 30 caracteres para exibição instantânea, como usada pelo Medium

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
278 mil
Curtidas
1,7 mil
Pontos Pub
160

Instalar pacote

flutter pub add flutter_blurhash

Visão geral do pacote

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

Flutter BlurHash é um pacote leve que permite a geração compacta e em tempo real de placeholders para imagens usando codificação BlurHash. Ele codifica uma versão borrada da imagem em uma string curta (menos de 30 caracteres), permitindo exibição instantânea durante o carregamento — ideal para melhorar o desempenho percebido em aplicativos com muitas imagens. O hash codificado pode ser renderizado diretamente como um placeholder, imitando as cores e estrutura da imagem original antes que a imagem real seja carregada. Essa abordagem é amplamente utilizada por plataformas como Medium para melhorar a experiência do usuário.

Casos de uso

  • Espaços reservados para carregamento de imagem
  • Otimização de desempenho em aplicativos com muitos meios
  • Feedback visual instantâneo durante a busca de imagem
  • Renderização progressiva de imagens
  • Reduzindo o tempo percebido de carregamento
  • Pré-visualizações de imagem offline

Principais recursos

  • Representação de hash ultracompacta
  • Geração de espaço reservado em tempo real
  • efeito de desfoque que preserva a cor
  • Suporte multiplataforma
  • Integração fácil com widgets de imagem
  • Baixo uso de largura de banda

Indicado para

  • Aplicativos com muitas imagens
  • Alimentações de conteúdo
  • plataformas de mídia social
  • Aplicativos de comércio eletrônico
  • UIs que priorizam o carregamento suave
  • Desenvolvedores procurando placeholders de imagem rápidos

Considerações

  • Detalhes limitados em hashes muito curtos
  • Não adequado para pré-visualizações de alta fidelidade
  • Requer decodificação no lado do cliente
  • Melhor para espaços reservados de baixa resolução
  • Pode não corresponder com precisão texturas complexas
  • O hash deve ser pré-computado ou gerado do lado do servidor

README original

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

Flutter Community: flutter_blurhash

pub package Twitter

flutter_blurhash

Blurhash is compact representation of a blurred image. It's often used as a placeholder while waiting for a full image to load.

This package implements the blurhash-decoding algorithm in pure Dart. It also provides the BlurHash widget that displays the blurhash and can transition into the actual image once it is loaded.

Currently, it doesn't support encoding an image into a blurhash.

Generation

A fast and easy way to get a blurhash for your image is to upload it to https://blurha.sh.

Blurhash demo

Example

Constrain your widget's render area and let BlurHash fill the pixels.

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text("BlurHash")),
        body: const SizedBox.expand(
          child: Center(
            child: AspectRatio(
              aspectRatio: 1.6,
              child: BlurHash(hash: "L5H2EC=PM+yV0g-mq.wG9c010J}I"),
            ),
          ),
        ),
      ),
    );
  }
}

Optimization Modes

  • None (BlurHashOptimizationMode.none): The original algorithm, provided for backward compatibility.
  • Standard (BlurHashOptimizationMode.standard): Optimized decoding with better cache locality and performance.
  • Approximation (BlurHashOptimizationMode.approximation): Fastest mode with an approximated sRGB conversion that produces slightly darker results but significantly improves performance.
class BlurHashApp extends StatelessWidget {
  const BlurHashApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) => MaterialApp(
    home: Scaffold(
      appBar: AppBar(title: const Text("BlurHash")),
      body: const SizedBox.expand(
        child: Center(
          child: AspectRatio(
            aspectRatio: 1.6,
            child: BlurHash(
              hash: "L5H2EC=PM+yV0g-mq.wG9c010J}I",
              optimizationMode: BlurHashOptimizationMode.approximation,
            ),
          ),
        ),
      ),
    ),
  );
}

Categorias

Repositório-fonte

Projetos que usam este pacote