This library uses GD and EXIF (optional) PHP extensions so make sure you have them installed.
It also uses the latest PHP 8.1 features and backwards compatibility isn't yet supported.
composer require leongrdic/imgman
use \Le\ImgMan\{ImgMan,ImageFormat};
- any image format supported by php-gd
Input methods:fromDataUrl()
,fromString()
,fromFile()
Call theoutput()
method with the wanted output format:
ImageFormat::jpeg
ImageFormat::png
ImageFormat::webp
(make sure your php-gd is configured to work with webp)
After that use:toDataUrl()
,toString()
,toFile()
$rawImageBytes = (newImgMan) ->fromDataUrl($dataUrlFromJS) ->cacheExif() ->downscale(2048) ->rotateFromExif()// rotating after downscaling should use less memory and be a bit faster ->output(ImageFormat::jpeg, quality:75) ->toString();
(newImgMan) ->fromFile('example.png') ->downscale(1920,1080) ->output(ImageFormat::png) ->toFile();// use input filename (replace original file)
$dataUrl = (newImgMan) ->fromString($rawImageBytes) ->output(ImageFormat::webp, quality:80) ->toDataUrl();
This library hasn't yet been fully tested and is to be used at your own responsibility.Any feedback and improvement suggestions are appreciated!