Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.0.1

jpeg_encode

Um codificador JPEG minimalista.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
4,9 mil
Curtidas
19
Pontos Pub
120

Instalar pacote

flutter pub add jpeg_encode

Visão geral do pacote

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

Um codificador JPEG minimalista para Flutter que permite aos desenvolvedores comprimir e codificar imagens no formato JPEG em múltiplas plataformas. Construído com simplicidade em mente, oferece uma solução leve para converter dados de imagem em JPEG sem exigir dependências complexas. Ideal para aplicativos que precisam de compressão eficiente de imagens ou salvar imagens em um formato amplamente suportado. O pacote suporta Android, iOS, Web, macOS, Windows e Linux, garantindo ampla compatibilidade. É particularmente útil em cenários onde a redução do tamanho do arquivo é crítica.

Casos de uso

  • Compressão de imagem em aplicativos móveis
  • Salvando fotos capturadas como JPEG
  • Reduzindo o tamanho dos arquivos de imagem para upload na web
  • Processamento em lote de ativos de imagem
  • Integrando a codificação JPEG em aplicativos multiplataforma

Principais recursos

  • API leve e mínima
  • Suporte multiplataforma
  • Codificação simples a partir de dados de imagem
  • Compressão eficiente
  • Nenhuma dependência nativa externa

Indicado para

  • Desenvolvedores que precisam de codificação básica JPEG
  • Aplicativos focados na otimização de imagens
  • Aplicações multimídia multiplataforma
  • Projetos que exigem codificadores de pequeno tamanho

Considerações

  • Limitado apenas ao formato JPEG
  • Sem opções avançadas de codificação, como ajuste de qualidade
  • Não adequado para processamento de imagens complexas
  • Depende das capacidades de manipulação de imagem da plataforma subjacente

README original

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

JPEG encoder

pub package

Skia, the engine behind dart:ui has no support for JPEG, only PNG and raw RGBA. And the source code comments make it clear that they don't intend to add any more formats, those should be left to external packages.

While there are packages that offer full support for image manipulation, many a time we don't need that, just to be able to convert a file to JPG for use outside of our app, maybe to send it to the web. This package does that and nothing else. It's a minimalistic JPEG encoder that doesn't offer any extra functionality but to create the simplest JPEG file. Not necessarily the best or most compressed one, although it's fairly good, nonetheless.

The code is just a straight Dart port of an existing implementation of Jon Olick from https://www.jonolick.com/code.html.

How to use

Let's suppose you have a dart:ui Image from somewhere, maybe you converted from an incoming image:

import "dart:ui" as ui;

Uint8List bytes;
final codec = await ui.instantiateImageCodec(bytes);
final frame = await codec.getNextFrame();
final image = frame.image;

And you want to convert it to JPG (quality is between 0 and 100, as usual):

final data = await image.toByteData(format: skia.ImageByteFormat.rawRgba);
final jpg = JpegEncoder().compress(data!.buffer.asUint8List(), image.width, image.height, 90);

In other words, the pixel array is expected to be in row major format (all columns of first row, then of the second row, etc), four bytes for each pixel: R, G, B and A. Alpha is ignored but the byte is expected to be there. Consequently, the length of the array has to be width * height * 4.

Before you ask, saving in Flutter is as simple as:

File(path).writeAsBytesSync(jpg); // or
await File(path).writeAsBytes(jpg);

Support

If you like this package, please consider supporting it.

Buy Me A Book

Categorias

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.