Класс посвящен первичной обработки и проверки изображений. Для обработки можно применять цепочечные функции через объект, или работать через статичные объекты, переключая активное изображение
Допускается возможность создать изображение через ссылку на файл либо через передачу строки. При загрузке - тестируется на наличие памяти, выделяемой скриптом для загрузки изображения, чтобы выдать красивый Exception вместо нативного. А также определяется - нужно ли поворачивать исходное изображение, если такой параметр может быть заложен в формат
new c\pic($filename,$autorotate=true);
c\pics::createPic($filename,$autorotate=true, $pic=null);
c\pics::isPic($filename);
Проверяет изображение на соответствие одному из заложенных типов JPEG, GIF, PNG, WEBP через содержимое
c\pics::memoryTest($x,$y);
Тестирует, хватит ли внутренней памяти для возможности загрузить изображение с размерами $x и $y. Оптимизация подобрана опытным путем для версии PHP 5.5
c\pics::resizeMaxWidth($x,$pic=null);
c\pics::resizeMaxHeight($y,$pic=null);
$pic->resizeMaxWidth($x);
$pic->resizeMaxHeight($x);
Изменяет размер изображения по максимальному параметру до указаной высоты или ширины
c\pics::resize($x,$y=null,$pic=null);
$pic->resize($x,$y=null);
Изменение размеров предварительно загруженного изображения до указаных координат.
Если $y не указан - он примет значение равное $x.
Результат сохраняется во внутреннюю память для дальнейшей обработки
c\pics::reizeBox($x,$y=null,$pic=null);
$pic->resizeBox($x,$y=null);
Изменение размеров предварительно загруженного изображения до указанных величин, сохраняя пропорции по максимальной из сторон
Если $y не указан - он примет значение равное $x.
Результат сохраняется во внутреннюю память для дальнейшей обработки
c\pics::resizeBoxFit($x,$y=null,$pic=null);
$pic->resizeBoxFit($x,$y=null);
Изменение размеров предварительно загруженного изображения до указанных величин, сохраняя пропорции по максимальной из сторон с обрезкой пустых областей
Если $y не указан - он примет значение равное $x.
Результат сохраняется во внутреннюю память для дальнейшей обработки
c\pics::resizeFit($x,$y=null,$pic=null);
$pic->resizeFit($x,$y=null);
...
Если $y не указан - он примет значение равное $x.
Результат сохраняется во внутреннюю память для дальнейшей обработки
c\pic::crop($x,$y,$width,$height,$pic=null);
$pic->crop($x,$y,$width,$height);
Обрезка ранее загруженного изображения начиная с координат $x, $y шириной и высотой $width и $height
Результат сохраняется во внутреннюю память для дальнейшей обработки
c\pics::cropCenter($x,$y=null,$pic=null);
$pic->cropCenter($x,$y=null);
Обрезка центральной части ранее загруженного изображения без изменения масштаба до указаных областей
Если $y не указан - он примет значение равное $x.
Результат сохраняется во внутреннюю память для дальнейшей обработки
c\pics::flip($direction='xy',$pic=null); // 'x' or 'y'
$pic->flip($direction='xy');
Отражение изображения по указанным осям. X, Y или по умолчанию XY
c\pics::rotate($angleClockWise,$bgcolor=0,$pic=null);
$pic->rotate($angleClockWise,$bgcolor=0);
Поворачивает изображение на произвольный угол по часовой стрелке с заполнением пустот указаным цветом
c\pics::addWatermark($x,$y,$watermarkFile,$opacity=100,$pic=null);
$pic->addWatermark($x,$y,$watermarkFile,$opacity=100);
Накладывает на ранее загруженое в памяти изображение водяной знак по адресу $watermark_file с прозрачностью $opacity и располагает в $x,$y процентах по отношению к исходному изображению с учетом размеров водяного знака
Результат сохраняется во внутреннюю память для дальнейшей обработки
Размытие изображения методом Selective и Gaussian
c\pics::blurSelective($passes=1);
$pic->blurSelective($passes=1);
c\pics::blurGaussian($passes=1);
$pic->blurGaussian($passes=1);
Прочие эффекты яркости, контрастности, сепии
c\pics::brightness($level,$pic=null);
$pic->brightness($level);
c\pics::contrast($level,$pic=null);
$pic->contrast($level);
c\pics::smooth($level,$pic=null);
$pic->smooth($level);
c\pics::pixelate($blockSize=10,$pic=null);
$pic->pixelate($blockSize=10);
c\pics::desaturate($percentage,$pic=null);
$pic->desaturate($percentage);
c\pics::edges($pic=null);
$pic->edges();
c\pics::embos($pic=null);
$pic->embos();
c\pics::sepia($pic=null);
$pic->sepia();
c\pics::invert($pic=null);
$pic->invert();
c\pics::meanRemove($pic=null);
$pic->meanRemove();
c\pics::sketch($pic=null);
$pic->sketch();
c\pics::save($filename,$quality=50,$pic=null);
$pic->save($filename,$quality=50);
Сохраняет ранее загруженое в память изображение в соответствии с расширением в имени итогового файла с указаным качеством
Для формата GIF - качество не влияет
c\pics::output($quality=50,$pic=null);
$pic->output($quality);
Выводит изображение в буфере на экран и завершает работу приложения. Формат вывода - PNG
c\pics::freeImage();
unset($pic);
Очищает ранее загруженное изображение из памяти
Создано при помощи сервиса Core CMS