lassehaslev / image
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 5.4.*
This package is not auto-updated.
Last update: 2024-11-18 06:51:29 UTC
README
PHP image handler gives easy to use function for manipulating images
Motivation
Resizing and cropping images on web is pain, and i wanted an image-engine that does this for me.
This package and its base concept is greatly inspired by Croppa.
Usage
I use this package mainly in my Laravel projects.
Run composer require lassehaslev/image
in your project folder
Laravel
If you want to use this package in you laravel project. We automaticly crops and resize the images based on the filename.
Open config/app.php
and add LasseHaslev\Image\Providers\LaravelServiceProvider::class
to providers
array.
Classes
You can nativly use this package in all php projects.
CropHandler
Adds base folder and crops folder and handle image from image path.
If no crops folder is set, we crate crops in same folder as original.
$baseFolder = '/image'; $cropsFolder = '/image/crops'; $handler = CropHandler::create( $baseFolder, $cropsFolder ); $this->handler ->handle( [ 'name'=>'test-image.jpg', 'width'=>89, 'height'=>89, 'resize'=>true, ] ) ->save( 'test-image-89x89-resize.jpg' );
Adaptors
You can use adapotors to handle image.
class Adaptor implements CropAdaptorInterface { public function transform( $input, $handler = null ) { return [ 'name'=>$input, 'width'=>300, 'height'=>200, 'resize'=>true, ]; } } $baseFolder = '/image'; $cropsFolder = '/image/crops'; $handler = CropHandler::create( $baseFolder, $cropsFolder, new Adaptor ); $this->handler ->handle( 'originalFilename.jpg' ) ->save( 'newFilename' );
ImageModifier
The ImageModifier
is the base image class for manipulating the images.
use LasseHaslev\Image\Modifiers\ImageModifier; $modifier = ImageModifier::create( { absolute image path } ); // Crop image function $modifier->crop( $x1, $y1, $x2, $y2 ); // Crop image to width and height based on fucuspoint $modifier->cropToFit( $width, $height, $focusPointX = 0, $focusPointY = 0 ); // Resize width and height $modifier->resize( $width, $height ); // Save the new image $modifier->save( {absolutePath} ); // Example $modifier->cropToFit( 300, 300 ) ->save( '/path/to/image.jpg' );
ImageHandler
The ImageHandler is for handling image and the crops. It extends from ImageModifier
.
use LasseHaslev\Image\Handlers\ImageHandler; $modifier = ImageHandler::create( $filepath ); // Remove the crops $modifier->removeCrops(); // Save $modifier->save( $pathOrFilename, $isFullPath = false );
Development
I have a problem with my tests. but i dont know why. Sometimes it passes and sometimes it dont.
# Prepare test images sh prepare.sh # Install php dependencies composer install # Install elixir dependencies npm install # run Test driven development through elixir gulp tdd
``
License
MIT, dawg