PHPackages                             juniorcastr/filament-image-compression - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. juniorcastr/filament-image-compression

ActiveLibrary[Image &amp; Media](/categories/media)

juniorcastr/filament-image-compression
======================================

Automatic image compression and WebP conversion for Filament file uploads

7101PHP

Since Oct 31Pushed 6mo agoCompare

[ Source](https://github.com/juniorcastr/filament-image-compression)[ Packagist](https://packagist.org/packages/juniorcastr/filament-image-compression)[ RSS](/packages/juniorcastr-filament-image-compression/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

Filament Image Compression
==========================

[](#filament-image-compression)

[![Latest Version on Packagist](https://camo.githubusercontent.com/050a46f297e17e1e55492abc12ce76dc4eaf6955faf23922ede267f696d00ceb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a756e696f7263617374722f66696c616d656e742d696d6167652d636f6d7072657373696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/juniorcastr/filament-image-compression)[![GitHub Tests Action Status](https://camo.githubusercontent.com/00a88cbcab70cf40d4180fe5e685b182c8c1f34f5b82702c8673bcef74df15ee/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6a756e696f7263617374722f66696c616d656e742d696d6167652d636f6d7072657373696f6e2f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/juniorcastr/filament-image-compression/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/1b60e7fb255e5f4159b6c01c8d8be832c677af89ae6608df153a733178cf7bd7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6a756e696f7263617374722f66696c616d656e742d696d6167652d636f6d7072657373696f6e2f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/juniorcastr/filament-image-compression/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/7f0d17dc9e0f2ddc8ca66066145bf6109ed38de211d8ebfcfa2e6bb367f186c2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a756e696f7263617374722f66696c616d656e742d696d6167652d636f6d7072657373696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/juniorcastr/filament-image-compression)[![License](https://camo.githubusercontent.com/08c9ba514ad1aa8212e742c65914f3a9c2bc1b7699a49f3c69bae609724afbb4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a756e696f7263617374722f66696c616d656e742d696d6167652d636f6d7072657373696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/juniorcastr/filament-image-compression)

A powerful Filament plugin that automatically compresses and converts uploaded images to WebP format, reducing file sizes while maintaining quality. Perfect for optimizing storage and improving website performance.

Features
--------

[](#features)

- 🚀 **Automatic Compression**: Seamlessly compresses images on upload
- 🖼️ **WebP Conversion**: Converts images to modern WebP format for better compression
- ⚙️ **Configurable Settings**: Customize compression quality and maximum dimensions
- 📱 **Multiple Formats**: Supports JPEG, PNG, GIF, BMP, and WebP input formats
- 🎯 **Easy Integration**: Drop-in replacement for Filament's FileUpload component
- 🔧 **Flexible Configuration**: Per-component or global configuration options
- 📊 **Compression Analytics**: Track compression ratios and file size savings

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require juniorcastr/filament-image-compression
```

Optionally, you can publish the config file with:

```
php artisan vendor:publish --tag="filament-image-compression-config"
```

Uso
---

[](#uso)

### Uso Básico

[](#uso-básico)

```
use Filament\Forms\Components\FileUpload;

// Upload com compressão automática
FileUpload::make('image')
    ->compressed()
    ->label('Imagem');
```

### Upload de Avatar

[](#upload-de-avatar)

```
FileUpload::make('avatar')
    ->compressedAvatar()
    ->label('Avatar');
```

### Upload Múltiplo

[](#upload-múltiplo)

```
FileUpload::make('gallery')
    ->compressedMultiple()
    ->label('Galeria de Imagens');
```

### Configurações Personalizadas

[](#configurações-personalizadas)

```
FileUpload::make('banner')
    ->compressedWithSettings(
        maxWidth: 1200,  // Largura máxima em pixels
        quality: 90      // Qualidade de 1-100
    )
    ->label('Banner');
```

### Uso Direto do Componente

[](#uso-direto-do-componente)

```
use JuniorCastr\FilamentImageCompression\Components\CompressedFileUpload;

// Uso básico
CompressedFileUpload::make('image')
    ->label('Imagem');

// Para avatar
CompressedFileUpload::makeForAvatar('avatar')
    ->label('Avatar');

// Para múltiplas imagens
CompressedFileUpload::makeMultiple('gallery')
    ->label('Galeria');

// Com configurações personalizadas
CompressedFileUpload::makeWithSettings('banner', 1200, 90)
    ->label('Banner');
```

Configurações Padrão
--------------------

[](#configurações-padrão)

### Compressão Básica

[](#compressão-básica)

- **Largura máxima**: 1920px
- **Qualidade**: 80%
- **Formato de saída**: WebP
- **Tamanho máximo**: 10MB

### Avatar

[](#avatar)

- **Largura máxima**: 400px
- **Qualidade**: 85%
- **Formato**: Circular com editor de imagem

### Formatos Suportados

[](#formatos-suportados)

**Entrada:**

- JPEG (.jpg, .jpeg)
- PNG (.png)
- GIF (.gif)
- WebP (.webp)
- BMP (.bmp)

**Saída:**

- WebP (formato otimizado)

Exemplos de Uso em Resources
----------------------------

[](#exemplos-de-uso-em-resources)

### Resource Básico

[](#resource-básico)

```
