PHPackages                             wad/image-compressor - 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. wad/image-compressor

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

wad/image-compressor
====================

A lightweight PHP package to compress image files (JPEG, PNG, WebP) with adjustable quality or target size. Easily reduce file sizes in your PHP projects using pure GD.

04PHP

Since Jul 30Pushed 1y agoCompare

[ Source](https://github.com/Github-Suriya/wad-image-compressor)[ Packagist](https://packagist.org/packages/wad/image-compressor)[ RSS](/packages/wad-image-compressor/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Image Compressor PHP Package
============================

[](#image-compressor-php-package)

A lightweight PHP package to compress image files (JPEG, PNG, WebP) with adjustable quality or target size. Easily reduce file sizes in your PHP projects using pure GD.

---

🚀 Features
----------

[](#-features)

- ✅ Compress **JPEG**, **PNG**, and **WebP** images
- ✅ Target compression by **percentage** or **file size (KB)**
- ✅ Compress **single** or **multiple** images in batch
- ✅ Automatically resizes large images (maintains aspect ratio)
- ✅ Maintains **transparency** for PNG/WebP
- ✅ Overwrite originals or save to custom folder
- ✅ Pure **PHP with GD** – no external dependencies
- ✅ Easy integration with Laravel, Symfony, or standalone PHP

---

⚙️ Requirements
---------------

[](#️-requirements)

- PHP 7.2 or higher
- GD extension enabled (`ext-gd`)

---

📦 Installation
--------------

[](#-installation)

Install via Composer:

```
composer require wad/image-compressor:dev-master
```

---

✅ Basic Usage

```
require 'vendor/autoload.php';

use Wad\ImageCompressor\Compressor;

// Create compressor with default quality (JPEG: 75, PNG/WebP: 6)
$compressor = new Compressor();

// Compress single image by 50% size
$original = __DIR__ . '/image.png';
$compressed = __DIR__ . '/image-compressed.png';

$result = $compressor->compressToPercentage($original, $compressed, 0.5);

if ($result !== false) {
    echo "Compressed successfully to $result bytes";
} else {
    echo "Compression failed";
}
```

---

🎯 Compress to Target File Size

```
$compressor = new Compressor();

$input = __DIR__ . '/banner.jpg';
$output = __DIR__ . '/banner-small.jpg';

// Compress to 300 KB
$result = $compressor->compressToSize($input, $output, 300);

echo $result ? "Compressed to $result bytes" : "Compression failed";
```

---

🗂 Batch Compression (By Percentage)

```
$files = [
    __DIR__ . '/img1.jpg',
    __DIR__ . '/img2.png',
];

$outputDir = __DIR__ . '/compressed_50';

$results = $compressor->compressMultipleToPercentage($files, $outputDir, 0.5);

foreach ($results as $file => $size) {
    echo basename($file) . ": " . ($size ? "$size bytes" : "Failed") . "\n";
}
```

---

📏 Batch Compression (By Target Size)

```
$files = [
    __DIR__ . '/photo1.webp',
    __DIR__ . '/photo2.png',
];

$outputDir = __DIR__ . '/compressed_300kb';

$results = $compressor->compressMultipleToSize($files, $outputDir, 300);

foreach ($results as $file => $size) {
    echo basename($file) . ": " . ($size ? "$size bytes" : "Failed") . "\n";
}
```

---

📝 License

MIT License. See the LICENSE file.

---

👤 Author We Are Developers 📧 🌐

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance36

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/154968651?v=4)[Suriya Murugan](/maintainers/Github-Suriya)[@Github-Suriya](https://github.com/Github-Suriya)

---

Top Contributors

[![Github-Suriya](https://avatars.githubusercontent.com/u/154968651?v=4)](https://github.com/Github-Suriya "Github-Suriya (2 commits)")

### Embed Badge

![Health badge](/badges/wad-image-compressor/health.svg)

```
[![Health](https://phpackages.com/badges/wad-image-compressor/health.svg)](https://phpackages.com/packages/wad-image-compressor)
```

###  Alternatives

[goat1000/svggraph

Generates SVG graphs

135931.0k3](/packages/goat1000-svggraph)[stefangabos/zebra_image

A single-file, lightweight PHP library designed for efficient image manipulation featuring methods for modifying images and applying filters

138121.6k7](/packages/stefangabos-zebra-image)[treinetic/imageartist

ImageArtist is a php gd Wrapper which makes Image manipulation insanely easy, we introduce ImageArtist as Photoshop for php

8783.2k](/packages/treinetic-imageartist)[johncarter/filament-focal-point-picker

An image focal point picker for Filament Admin.

4431.7k1](/packages/johncarter-filament-focal-point-picker)[yk/laravel-ocr

A wrapper for gocr.

1356.6k](/packages/yk-laravel-ocr)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
