nexacodetech/compress

Compactador de arquivos PDF e Imagem, compatível também com Laravel.

0.2.4 2024-08-20 20:08 UTC

This package is auto-updated.

Last update: 2024-10-20 20:29:23 UTC


README

A biblioteca Compress permite a compressão de imagens e PDFs com facilidade. Suporta diferentes níveis de qualidade e modos de saída. Em alguns testes, conseguimos reduzir um PDF em até 98% do seu tamanho e imagem em até 75%.

Instalação

Para instalar a biblioteca, utilize o Composer para adicionar o pacote nexacodetech/compress ao seu projeto:

composer require nexacodetech/compress

Além disso, é necessário instalar o Ghostscript e o ImageMagick. Siga as instruções abaixo e adapte para o seu sistema operacional:

Ubuntu

sudo apt-get update
sudo apt-get install -y ghostscript
sudo apt-get install -y imagemagick

Uso

Comprimindo Imagens

Para comprimir uma imagem, utilize o seguinte código:

use NexacodeTech\Compress\Compress;
use NexacodeTech\Compress\Enums\CompressTypeEnum;
use NexacodeTech\Compress\Enums\QualityEnum;
use NexacodeTech\Compress\Enums\OutputTypeEnum;

$compress = Compress::make(CompressTypeEnum::IMAGE);

$compress->setQuality(QualityEnum::LOW);
$content = $compress->compress('files/panorama.jpg', OutputTypeEnum::FILE, 'files/compressed.jpg');

Qualidade

Os níveis de qualidade disponíveis são:

  • QualityEnum::LOW
  • QualityEnum::MEDIUM
  • QualityEnum::MEDIUM
  • QualityEnum::HIGH
  • QualityEnum::VERY_HIGH
  • QualityEnum::MAXIMUM

Tipo de Saída

Os tipos de saída disponíveis são:

  • OutputTypeEnum::FILE - Salva o arquivo comprimido.
  • OutputTypeEnum::STREAM - Retorna o conteúdo comprimido como um stream.

Comprimindo PDFs

Para comprimir um arquivo PDF, a única modificação necessária é alterar o tipo de compressão para PDF:

use NexacodeTech\Compress\Compress;
use NexacodeTech\Compress\Enums\CompressTypeEnum;
use NexacodeTech\Compress\Enums\QualityEnum;
use NexacodeTech\Compress\Enums\OutputTypeEnum;

$compress = Compress::make(CompressTypeEnum::PDF);

$compress->setQuality(QualityEnum::LOW);
$content = $compress->compress('files/document.pdf', OutputTypeEnum::FILE, 'files/compressed.pdf');

Contribuição

Se desejar contribuir para este projeto, sinta-se à vontade para abrir um pull request ou relatar problemas na página de issues.

Licença

Este projeto está licenciado sob a MIT License.