Skip to content

ImageTinify is an open-source PHP library developed by Nishadil Services Private Limited for smart image compression and optimization — inspired by TinyPNG and TinyJPG.

License

Notifications You must be signed in to change notification settings

nishadil/ImageTinify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nishadil / ImageTinify

ImageTinify is an open-source PHP image optimization library inspired by TinyPNG/TinyJPG. It provides a simple API and CLI to compress PNG, JPEG, AVIF and WebP images using a combination of native PHP methods and optional best-in-class CLI tools (pngquant, zopfli, mozjpeg, jpegoptim).

Features

  • PNG, JPEG, WebP, AVIF support
  • Lossy and lossless modes
  • Optional integration with external tools
  • Laravel/CMS friendly
  • CLI utility

Tools to install (strongly recommended)

sudo apt update
sudo apt install -y pngquant zopfli jpegoptim libjpeg-turbo-progs cavif libavif-bin imagemagick

Confirm installed:

which pngquant zopfli cjpeg jpegoptim cwebp || true
which cavif avifenc

Installation

composer require nishadil/imagetinify

Usage (smart mode)

use Nishadil\ImageTinify\ImageTinify;

$tiny = new ImageTinify();
$tiny->compress('uploads/input.png', 'uploads/input-tinified.png');

Usage customized

use Nishadil\ImageTinify\ImageTinify;

$tiny = new ImageTinify();
$tiny->compress('uploads/input.png', 'uploads/input-tinified.png', [
    'mode' => 'lossy',
    'quality' => '65-85'
]);

Get compressed image as binary string

use Nishadil\ImageTinify\ImageTinify;

$tiny = new ImageTinify();
$data = $tiny->compress('images/test.jpg', null, ['quality' => 75]);

// $data now contains binary content
file_put_contents('images/test-tinified-inline.jpg', $data);

Direct print image

use Nishadil\ImageTinify\ImageTinify;

$tiny = new ImageTinify();
header('Content-Type: image/jpeg');
echo $tiny->compress('images/test.jpg', null, ['quality' => 70]);

Get Base64 encoded image

use Nishadil\ImageTinify\ImageTinify;

$tiny = new ImageTinify();

$binary = $tiny->compress('images/test.png');
$base64 = base64_encode($binary);
echo "data:image/png;base64," . $base64;

CLI

php bin/imagetinify input.png output.png --mode=lossy --quality=80

About

ImageTinify is an open-source PHP library developed by Nishadil Services Private Limited for smart image compression and optimization — inspired by TinyPNG and TinyJPG.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages