Executando verificação de segurança...
16

Implementei um minúsculo codificador de imagem PNG em JS com apenas 2KB

Há alguns anos precisei implementar um codificar de imagem PNG sem perdas em Javascript. Eu sabia que já existia, mas fiquei curioso pra criar minha própria versão. Me inspirei no código-fonte do Lodepng e e fui me guiando pela documentação do PNG. A princípio a maior barreira era implementar o algoritmo Deflate. Durante o desenvolvimento descobri a Compression Streams API, que é nativa do JS conta com a compressão Deflate e outras. Isso facilitou o trabalho. Consegui montar um codificador sem perdas para todos os tipos de imagem PNG de 1 byte por canal.
O código é bem compacto e legível. Este é o repositório: https://github.com/nildopontes/ePNG.
Recentemente estive pensando em tornar este código mais compacto ainda e focar somente no tipo de imagem RGBA, que é mais abrangente. Consegui implementar com pouco mais de 2KB sem qualquer dependência externa.
Eis o código: https://gist.github.com/nildopontes/223899c9c2892561c9de56dc7f42bc69

Possui uma performance execente. Vale conferir.

Carregando publicação patrocinada...
3

Muito legal mesmo !
Eu fiquei impressionado com o projeto e com o source.
Formatos de imagem é algo importante e que me interessa bastante mas é difícil achar conteudo explicadinho.