1
0
mirror of https://github.com/Intervention/image.git synced 2025-08-18 19:51:22 +02:00

documentation improvements

This commit is contained in:
Oliver Vogel
2013-03-21 14:28:23 +01:00
parent 827c542017
commit 774a0dfb06
4 changed files with 51 additions and 302 deletions

263
README.md
View File

@@ -1,266 +1,15 @@
# Intervention Image Class # Intervention Image Class
Intervention Image Class is an image handling and manipulation wrapper library using [PHP GD library](http://www.php.net/manual/book.image.php). The class is written to make PHP image manipulating more easier and expressive. Intervention Image is a PHP Image handling and manipulation class with support for Laravel 4 integration.
The library requires at least **PHP version 5.3** and comes with [Laravel 4](https://github.com/laravel/framework/) Facades and Service Providers to simplify the optional framework integration. ## Documentation
## Installation Refer to the following guide on how to use Intervention Image Class.
You can install this Image class quickly and easily with Composer. [Intervention Image Class Documentation](http://intervention.olivervogel.net/image/)
Require the package via Composer in your `composer.json`.
"intervention/image": "dev-master"
Run Composer to install or update the new requirement.
$ composer update
Now you are able to require the `vendor/autoload.php` file to PSR-0 autoload the library.
### Laravel 4 Integration
The Image class also has optional Laravel 4 support. The integration into the framework is done in seconds.
Open your Laravel config file `config/app.php` and add the following lines.
In the `$providers` array add the service providers for this package.
'providers' => array(
[...]
'Intervention\Image\ImageServiceProvider'
),
Add the facade of this package to the `$aliases` array.
'aliases' => array(
[...]
'Image' => 'Intervention\Image\Facades\Image'
),
## Usage
* Image::__construct - Create new instance of Image class
* Image::make - Open a new image resource from image file
* Image::canvas - Create a new empty image resource
* Image::raw - Create a new image resource with image data from string
* Image::open - Open a new image resource from image file
* Image::resize - Resize current image based on given width and/or height
* Image::crop - Crop the current image
* Image::grab - Cut out a detail of the image in given ratio and resize to output size
* Image::resizeCanvas - Resize image boundaries
* Image::opacity - Set opacity of current image
* Image::mask - Apply given image as alpha mask on current image
* Image::insert - Insert another image on top of the current image
* Image::brightness - Changes brightness of current image (-100 = min brightness, 0 = no change, +100 = max brightness)
* Image::contrast - Changes contrast of current image (-100 = min contrast, 0 = no change, +100 = max contrast)
* Image::pixelate - Pixelate current image
* Image::greyscale - Turn current image into a greyscale version
* Image::invert - Invert colors of current image
* Image::rotate - Rotate image by a given value
* Image::flip - Mirror image horizontally or vertically
* Image::text - Write text in current image
* Image::fill - Fill image with given color or image at position x,y
* Image::rectangle - Draw rectangle in current image starting at point 1 and ending at point 2
* Image::line - Draw a line in current image starting at point 1 and ending at point 2
* Image::ellipse - Draw an ellipse centered at given coordinates
* Image::circle - Draw a circle centered at given coordinates
* Image::pixel - Set single pixel with given color at position x,y
* Image::pickColor - Picks and formats color at position in current image
* Image::reset - Reset to original image resource
* Image::save - Save image in filesystem
* Image::__toString - Returns image data depending on current format
### Code examples (Laravel)
#### Resize images
```php
// create Image from file
$img = Image::make('public/foo.jpg');
// resize image to fixed size
$img->resize(300, 200);
// resize only the width of the image
$img->resize(300, null);
// resize only the height of the image
$img->resize(null, 200);
// resize the image to a width of 300 and constrain aspect ratio (auto height)
$img->resize(300, null, true);
// resize the image to a height of 200 and constrain aspect ratio (auto width)
$img->resize(null, 200, true);
// prevent possible upsizing with optional fourth parameter
$img->resize(null, 400, true, false);
// Reset image resource to original
$img->reset();
// save image in desired format and quality
$img->save('public/bar.jpg', 60);
```
#### Resize canvas
```php
// create Image from file
$img = Image::make('public/foo.jpg');
// resize image canvas
$img->resizeCanvas(300, 200);
// resize only the width of the canvas
$img->resizeCanvas(300, null);
// resize only the height of the canvas
$img->resizeCanvas(null, 200);
// resize the canvas by cutting out bottom right position
$img->resizeCanvas(300, 200, 'bottom-right');
// resize the canvas relative by setting the third parameter to true
$img->resizeCanvas(10, -10, 'center', true);
// set a background-color for the emerging area
$img->resizeCanvas(1280, 720, 'center', false, 'ff00ff');
```
#### Crop image
```php
// create Image from file
$img = Image::make('public/foo.jpg');
// crop 300x200 pixel cutout at position x:200, y:100
$img->crop(300, 200, 200, 100);
// crop 300x200 pixel cutout centered on current image
$img->crop(300, 200);
// save image
$img->save();
```
#### Smart resizing
```php
// use grab method to format images in a smart way combining cropping and resizing
$img = Image::make('public/foo.jpg');
// crop the best fitting 1:1 ratio (200x200) and resize to 200x200 pixel
$img->grab(200);
// crop the best fitting 5:3 (600x360) ratio and resize to 600x360 pixel
$img->grab(600, 360);
// save image
$img->save('public/bar.jpg');
```
#### Create empty images and add content
```php
// create an empty Image resource (background color transparent)
$img = Image::canvas(640, 480);
// insert another image on top of current resource
$img->insert('public/bar.png');
// write some text in image
$img->text('Hello World', 10, 10);
// save image in desired format
$img->save('public/foo.jpg');
```
#### Image filters
```php
// create Image from file
$img = Image::make('public/foo.jpg');
// turn image into greyscale version
$img->greyscale();
// modify brightness level
$img->brightness(80);
// modify contrast level
$img->contrast(-45);
// pixelate image with blocksize of 25x25 pixel
$img->pixelate(25);
```
#### Other examples
```php
// create empty canvas
$img = Image::canvas(800, 600);
// fill image with color
$img->fill('cccccc');
// fill image with tiled image
$img->fill(Image::make('tile.png'));
// draw a filled rectangle
$img->rectangle('006729', 100, 100, 200, 200, true);
// draw a outline circle
$img->circle('ae051f', 400, 300, 100, false);
// draw a red line from point 10,10 to point 300,300 pixel
$img->line('ae051f', 10, 10, 300, 300);
// Apply image as alpha mask on image
$img->mask('public/mask.png', true);
// rotate image 90° clockwise
$img->rotate(90);
// set 75% opacity
$img->opacity(75);
// flip image horizontally
$img->flip('h');
// flip image vertically
$img->flip('v');
```
#### Method chaining
```php
// it is possible to chain all methods
$img1 = Image::canvas(800, 600);
$img2 = Image::make('public/img2.png');
$img1->resize(300, 200)->insert($img2)->save('public/bar.jpg');
```
## Image Caching
The optional package [Intervention Image Cache](https://github.com/Intervention/imagecache/) extends the package to be capable of image caching. `Image::cache` will automatically detect if a cached file for the particular operations exists.
```php
// run the operations on the image or read a file
// for the particular operations from cache
$img = Image::cache(function($image) {
return $image->make('public/foo.jpg')->resize(300, 200)->greyscale();
});
```
Read more about [Intervention Image Cache](https://github.com/Intervention/imagecache/).
## License ## License
Intervention Image Class is licensed under the [MIT License](http://opensource.org/licenses/MIT). Intervention Image Class is licensed under the [MIT License](http://opensource.org/licenses/MIT).
Copyright 2013 [Oliver Vogel](http://olivervogel.net/)

View File

@@ -1,7 +1,7 @@
{ {
"name": "intervention/image", "name": "intervention/image",
"description": "Image handling and manipulation library with support for Laravel 4 integration", "description": "Image handling and manipulation library with support for Laravel 4 integration",
"homepage": "https://github.com/Intervention/image", "homepage": "http://intervention.olivervogel.net/image/",
"keywords": ["image", "gd", "laravel"], "keywords": ["image", "gd", "laravel"],
"license": "MIT", "license": "MIT",
"authors": [ "authors": [

View File

@@ -694,20 +694,20 @@ class Image
/** /**
* Set opacity of current image * Set opacity of current image
* *
* @param integer $value * @param integer $transparency
* @return Image * @return Image
*/ */
public function opacity($value) public function opacity($transparency)
{ {
if ($value >= 0 && $value <= 100) { if ($transparency >= 0 && $transparency <= 100) {
$value = intval($value) / 100; $transparency = intval($transparency) / 100;
} else { } else {
throw new Exception('Opacity must be between 0 and 100'); throw new Exception('Opacity must be between 0 and 100');
} }
// create alpha mask // create alpha mask
$alpha = new self(null, $this->width, $this->height); $alpha = new self(null, $this->width, $this->height);
$alpha->fill(sprintf('rgba(0, 0, 0, %.1f)', $value)); $alpha->fill(sprintf('rgba(0, 0, 0, %.1f)', $transparency));
// apply alpha mask // apply alpha mask
$this->mask($alpha, true); $this->mask($alpha, true);
@@ -774,10 +774,10 @@ class Image
* @param int $ignore_transparent * @param int $ignore_transparent
* @return Image * @return Image
*/ */
public function rotate($angle = 0, $color = '#000000', $ignore_transparent = 0) public function rotate($angle = 0, $bgcolor = '#000000', $ignore_transparent = 0)
{ {
// rotate image // rotate image
$this->resource = imagerotate($this->resource, $angle, $this->parseColor($color), $ignore_transparent); $this->resource = imagerotate($this->resource, $angle, $this->parseColor($bgcolor), $ignore_transparent);
// re-read width/height // re-read width/height
$this->width = imagesx($this->resource); $this->width = imagesx($this->resource);
@@ -874,16 +874,16 @@ class Image
* Draw an ellipse centered at given coordinates. * Draw an ellipse centered at given coordinates.
* *
* @param string $color * @param string $color
* @param integer $x * @param integer $pos_x
* @param integer $y * @param integer $pos_y
* @param integer $width * @param integer $width
* @param integer $height * @param integer $height
* @return Image * @return Image
*/ */
public function ellipse($color, $x = 0, $y = 0, $width = 10, $height = 10, $filled = true) public function ellipse($color, $pos_x = 0, $pos_y = 0, $width = 10, $height = 10, $filled = true)
{ {
$callback = $filled ? 'imagefilledellipse' : 'imageellipse'; $callback = $filled ? 'imagefilledellipse' : 'imageellipse';
call_user_func($callback, $this->resource, $x, $y, $width, $height, $this->parseColor($color)); call_user_func($callback, $this->resource, $pos_x, $pos_y, $width, $height, $this->parseColor($color));
return $this; return $this;
} }