Masowa optymalizacja obrazów

Obsługa JPG, PNG, WebP, AVIF i GIF. Podglądy, link jednorazowy, export ZIP. Idealne do sklepów i blogów.

  • Bez rejestracji
  • Szybkie działanie
  • Operacje w pamięci
Przewodnik krok po kroku

Zero back-endu, 100% lokalnie.

icon

Kompresor Obrazów (Wsadowy)

Skompresuj i zoptymalizuj wiele obrazów jednocześnie.
Użyj zdalnego URL Użyj plików lokalnych
Upuść pliki tutaj, aby je skompresować
lub
Podgląd Nazwa pliku Status Rozmiar przed Rozmiar po Oszczędność Akcja

Wsadowa optymalizacja obrazów online. JPG, PNG, WebP, AVIF i GIF w jednym miejscu

BulkImgOptimizer kompresuje i optymalizuje wiele obrazów naraz. Działa z plikami lokalnymi oraz zdalnymi URL. Oferuje trzy poziomy jakości, tworzy szybkie podglądy, raportuje oszczędności i generuje bezpieczne linki do pobrania. Pod spodem korzysta z łańcucha Spatie Image Optimizer oraz wybranych binarek systemowych.

Batch
Local or URL
Lossless - Balanced - Aggressive
JPG PNG GIF WebP AVIF

Zobacz jak działa

Co potrafi narzędzie i kiedy je wybrać

Jeśli prowadzisz sklep, publikujesz wpisy z wieloma zdjęciami albo przygotowujesz kampanię, wsadowa optymalizacja eliminuje ręczne klikanie. Wgrywasz paczkę obrazów lub podajesz link do pliku zdalnego, wybierasz poziom jakości i uruchamiasz kompresję. Moduł czyści metadane, redukuje rozmiar i zachowuje ważne atrybuty, a na końcu zwraca zoptymalizowane zasoby gotowe do użycia w produkcji.

  • Obsługa typów: JPG, JPEG, PNG, GIF, WebP i AVIF.
  • Tryb wejścia: lokalne pliki lub pojedynczy zdalny URL.
  • Trzy poziomy pracy: bezstratny, zbalansowany, agresywny.
  • Podglądy i lista wgranych z rozmiarami przed obróbką.
  • Raport z wynikami: rozmiar przed, po oraz procent oszczędności.
  • Szybki podgląd wyników z publicznego storage oraz link jednorazowy do pobrania.
  • Eksport ZIP wszystkich przetworzonych plików jednym kliknięciem.

Jak działa komponent od środka

Komponent Livewire utrzymuje stan wejścia i listę wyników. onConvertType przełącza typ źródła. updatedLocalFile generuje podglądy po wgraniu i publikuje je w magazynie publicznym. onSetRemoteURL pobiera plik spod adresu HTTP w czasie kontrolowanym przez timeout, zapisuje go tymczasowo i wystawia podgląd. Główne przetwarzanie uruchamia onBulkImageOptimizer, która waliduje wejście, iteruje po plikach i deleguje jednostkową optymalizację do processFile. Po zakończeniu zapisywana jest pozycja w historii użyć jeśli włączono logowanie.

Poziomy jakości i łańcuch optymalizatorów

Lossless - Bezstratna

Domyślny łańcuch bez dodatkowych przełączników jakości. Usuwa zbędne metadane i stosuje bezpieczne optymalizacje. Idealne na start oraz do materiałów wrażliwych.

Jakość 100%

Balanced - Zbalansowana

Dodaje jpegoptim z limitem jakości -m85, pngquant z zakresem 65-85, cwebp z q=82 oraz gifsicle na poziomie O2. Daje znaczną redukcję bez widocznych strat w typowych zastosowaniach web.

Rekomendowane

Aggressive - Agresywna

Dokręca parametry: jpegoptim do -m75, pngquant z jakością 60-80 i prędkością 1, cwebp q=80, gifsicle O3. Największe zyski kosztem większego ryzyka artefaktów, zalecane do banerów, miniaturek i assetów, które nie wymagają maksymalnej wierności.

Maks kompresja

Ścieżki wejścia i podglądy

  • Pliki lokalne - wgrywasz wiele obrazów naraz. Komponent generuje wiersze na liście i udostępnia miniatury.
  • Zdalny URL - podajesz adres. System pobiera zasób metodą GET z limitem czasu 20 s, zapisuje do katalogu tymczasowego i pokazuje miniaturę.
  • Podglądy trafiają do dysku publicznego w folderze tymczasowym i są bezpieczne do użycia w interfejsie.

Proces przetwarzania i wynik

// Skrót logiki
validateInputs()
files = local_file[] lub request()->file('file') lub [pobrany z remote_url]
for each file:
  result[] = processFile(filePath, originalName)

// processFile
- kontrola rozszerzenia: jpg jpeg png gif webp avif
- zapis kopii do katalogu roboczego
- dobór chaina: lossless - balanced - aggressive
- chain->optimize(optimizedPath)
- obliczenie oszczędności
- zapis do public/optimized z unikalną nazwą
- budowa linku jednorazowego: HMAC + base64 ścieżki
- zwrot statystyk i adresów
Link jednorazowy pobiera plik i usuwa go po wysłaniu. Dodatkowo możesz pobrać wszystkie wyniki jednym przyciskiem w formacie ZIP.

Parametry wejściowe i wyjściowe

Pole Opis Zakres lub format
convertType Źródło danych localFile lub remoteURL
local_file Jeden lub wiele plików wgrywanych z urządzenia .jpg .jpeg .png .gif .webp .avif
remote_url Adres do pojedynczego pliku pobieranego HTTP pełny URL, timeout 20 s
level Profil kompresji lossless, balanced, aggressive
previews[] Lista podglądów z nazwą, rozmiarem i URL generowane automatycznie
data[] Wyniki optymalizacji z rozmiarami i linkami status, old_size, new_size, saved, download_url, download_once

Walidacja, bezpieczeństwo i logi

  • Walidacja reCAPTCHA jest respektowana jeśli włączona w ustawieniach ogólnych.
  • Historia użycia może być zapisana z adresem IP, user agentem i krajem z GeoLite2. Funkcja jest opcjonalna i zależy od flagi w konfiguracji.
  • Pliki tymczasowe trafiają do storage Livewire. Wyniki są zapisywane w publicznym storage w folderze optimized.
  • Link jednorazowy jest podpisany HMAC i wykorzystuje zakodowaną ścieżkę. Pobranie usuwa plik po stronie serwera.
  • ZIP budowany jest dynamicznie z pozycji, które fizycznie istnieją na dysku.

Najczęstsze pytania

Czy narzędzie zmienia wymiary obrazu

Nie. Komponent nie skaluje wymiarów. Redukuje wagę przez czyszczenie metadanych i optymalizację kodeków.

Czy mogę przetwarzać bardzo duże pliki

Tak, w granicach zasobów serwera i limitów PHP. Zadbaj o pamięć i czas wykonywania. Pobieranie zdalne ma limit czasu 20 s.

Jakie zyski są typowe

JPEG 20 do 60 procent, PNG 20 do 50 procent, WebP 5 do 25 procent, GIF 20 do 45 procent, AVIF zwykle mniejsze zyski bo format jest już zoptymalizowany. Profil agresywny daje więcej, ale wymaga testu wizualnego.

Czy wyniki są publiczne

Bezpośredni URL jest publiczny. Używaj linku jednorazowego jeśli chcesz wymusić jednorazowe pobranie i usunięcie zasobu po stronie serwera.

Czy mogę przetworzyć obrazy z wielu adresów URL

Aktualny interfejs przewiduje pojedynczy zdalny plik na sesję. Dla wielu adresów uruchom przetwarzanie wielokrotnie lub skorzystaj z plików lokalnych.

Dobre praktyki optymalizacji

  • Startuj od profilu zbalansowanego. Jeśli wynik jest za ciężki, przełącz na agresywny i porównaj.
  • Assety krytyczne jakościowo trzymaj w profilu bezstratnym i rozważ ręczne dostrojenie w pipeline CI.
  • Przed optymalizacją usuń zbędne warianty rozdzielczości. Mniej plików to szybsze przetwarzanie.
  • Dostarczaj obrazy responsywne przez srcset i sizes. Optymalizacja wagowa współgra z doborem rozdzielczości.
  • Po wdrożeniu monitoruj LCP i transfer. Różnice w CDN i przeglądarkach potrafią zmienić efekt końcowy.

Rozwiązywanie problemów

  • Komunikat o nieobsługiwanym pliku - sprawdź rozszerzenie. Dozwolone: jpg, jpeg, png, gif, webp, avif.
  • Brak efektu na AVIF lub WebP - formaty są już wydajne. Zysk będzie mniejszy niż w JPEG czy PNG.
  • Błąd pobierania z URL - zweryfikuj kod odpowiedzi HTTP oraz nagłówki CORS i typ Content-Type.
  • Niski zysk na PNG - spróbuj profilu agresywnego, ewentualnie ponownego eksportu z mniejszą głębią barw.
  • Chcesz ściąć rozmiary bardziej - rozważ konwersję do WebP lub AVIF poza tym modułem, a potem finalny przelot optymalizatorem.
 
Efekt
Automatyczna redukcja wagi obrazów w kilku formatach z raportem oszczędności
Kontrola
Trzy profile pracy i dwa tryby wejścia - lokalne pliki lub zdalny URL

Upewnij się, że masz prawo do przetwarzania plików. Włącz politykę retencji i czyszczenia katalogów tymczasowych po zakończonych zadaniach.

Rozpocznij kompresję