Buscar pacotes, repositórios e categorias de apps

Capa de blurhash_ffi
Detalhes do pacotev1.2.7

blurhash_ffi

Um gerador de espaço reservado de imagem borrada compacto, rápido e fácil de usar para o Flutter usando vinculações nativas FFI.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
3,2 mil
Curtidas
107
Pontos Pub
130

Instalar pacote

flutter pub add blurhash_ffi

Visão geral do pacote

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

blurhash_ffi é um pacote de alto desempenho para Flutter que gera espaços reservados de imagens borradas compactas e visualmente atraentes usando vinculações nativas FFI. Ele codifica e decodifica strings BlurHash de forma eficiente, permitindo renderização rápida de espaços reservados sem depender de implementações puramente em Dart. Ideal para melhorar o desempenho percebido durante o carregamento de imagens, funciona em Android, iOS, macOS, Windows e Linux. O pacote prioriza velocidade e uso mínimo de memória, mantendo a qualidade visual.

Casos de uso

  • Espaços reservados da tela de carregamento
  • Pré-visualizações da galeria de imagens
  • indicadores de carregamento de imagem de rede
  • Espaços reservados para conteúdo off-line
  • Otimização de desempenho em aplicativos com muitos meios

Principais recursos

  • Desempenho de FFI nativo
  • Suporte multiplataforma
  • Codificação compacta de hash
  • Decodificação rápida
  • Baixo consumo de memória

Indicado para

  • Aplicativos com carregamento pesado de imagens
  • Requisitos de interface de usuário de alto desempenho
  • Desenvolvedores procurando velocidade nativa
  • Projetos que precisam de espaços reservados leves
  • Aplicativos Multiplataforma Flutter

Considerações

  • Requer configuração de compilação nativa
  • Limitado apenas ao formato BlurHash
  • Pode aumentar ligeiramente o tamanho do aplicativo
  • Não adequado para processamento de imagem complexo
  • Depende de bibliotecas FFI específicas da plataforma

README original

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

blurhash_ffi

A Blurhash compact Image placeholder encoder and decoder FFI implementation for Flutter in Rust via experemental feature Native Assets.

Matches the official Blurhash implementation in performance and quality.

blurhash_ffi

Supports

Platform Status Description
Android ✅ -
iOS ✅ -
macOS ✅ -
Linux ⚠️ Not tested
Windows ✅ -
Web ❌ Rust can compiled to WebAssembly, but no supported yet. This library compiled on standalone wasm module (not in Empscripten, AssemblyScript) that Dart can't be use non-JS enviroments. Also, Dart should use FFI bindings for call wasm module. Stopped issues: comment

Installation

Add dependency to your pubspec.yaml file following the command below:

For dart projects:

dart pub add dart_blurhash_ffi

For flutter projects:

dart pub add flutter_blurhash_ffi

Usage

To use this plugin, add blurhash_ffi as a dependency in your pubspec.yaml file

Flutter usage

import 'package:flutter_blurhash_ffi/flutter_blurhash_ffi.dart';

/// Encoding and Decoding all in One Step
///
/// `ImageProvider` in    -> Send your Image to be encoded.
/// `ImageProvider` out   -> Get your blurry image version.
class BlurhashMyImage extends StatelessWidget {
  final String imageUrl;
  const BlurhashMyImage({required this.imageUrl, super.key});

  @override
  Widget build(BuildContext context) {
    return Image(
      image: BlurhashFfiImage.fromImageProvider(
        NetworkImage(imageUrl),  // you can use any image provider of your choice.
        decodingHeight: 1920,
        decodingWidth: 1080,
      ),
      alignment: Alignment.center,
      fit: BoxFit.cover
    );
  }
}


class BlurhashMyImage2 extends StatelessWidget {
  final String blurhash;
  const BlurhashMyImage2({required this.blurhash, super.key});

  @override
  Widget build(BuildContext context) {
    return Image(
      image: BlurhashFfiImage(blurhash),
      width: 200,
      height: 200,
      alignment: Alignment.center,
      fit: BoxFit.cover
    );
  }
}

[!WARNING] Not recommend use it (without blurhash string param), because in this case, encoding and decoding will be performed. This effect can be obtained almost through ImageFiltered.

Encoding

Encoding now uses sync interface (without Future).

import 'package:dart_blurhash_ffi/dart_blurhash_ffi.dart';

final Uint8List blurhashImageBytes = File('assets/image.webp').readAsBytesSync();

/// Signature
/// static String encode(
///   Uint8List data, {
///   int componentX = 4,
///   int componentY = 3,
/// })
/// may throw `BlurhashFFIException` if encoding fails.
final String blurHash = BlurhashFFI.encode(blurhashImageBytes);

// Or via codec

final String blurHashSame = BlurhashFfiCodec().encoder.convert(blurhashImageBytes);

Decoding

Decoding now uses sync interface (without Future).

import 'package:dart_blurhash_ffi/dart_blurhash_ffi.dart';

final String blurhash = 'LGFO~6Yk^6#M@-5c,1Ex@@or[j6o';

/// Signature
///
/// static Uint8List decode(
///   String blurhash, {
///   int width = 32,
///   int height = 32,
///   int punch = 1,
/// })
/// may throw `BlurhashFFIException` if decoding fails.
final decoded = BlurhashFFI.decode(blurhash);

// or via codec

final String decodedSame = BlurhashFfiCodec().decoder.convert(blurhash);

Check the example for more details

contributions in the form of PR's and Issues are a welcome

Categorias

Dependências

Lista de dependências 2 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.