Sử dụng Intervention/Image để Upload và Resize image

Bài viết hướng dẫn cài đặt Intervention/Image. Sử dụng Intervention Image để upload và resize image Laravel, PHP.

1. Yêu cầu hệ thống:

  • Phiên bản php >= 5.4
  • Fileinfo Extension

Và một trong các thư viện hình ảnh sau đây:

  • GD Library (>=2.0) … or …
  • Imagick PHP extension (>=6.5.7)

2. Cài đặt bằng Composer:

Để cài đặt phiên bản mới nhất bạn chạy lệnh sau:

	$ php composer.phar require intervention/image

3. Sử dụng đối với PHP:

Intervention/Image không yêu cầu Laravel hay bất ký framework nào khác. Đối với PHP thuần bạn có thể sử dụng như ví dụ sau:

Ví dụ 1:

	// include composer autoload
	require 'vendor/autoload.php';

	// import the Intervention Image Manager Class
	use Intervention\Image\ImageManager;

	// create an image manager instance with favored driver
	$manager = new ImageManager(array('driver' => 'imagick'));

	// to finally create image instances
	$image = $manager->make('public/foo.jpg')->resize(300, 200);

Ví dụ 2:

	// include composer autoload
	require 'vendor/autoload.php';

	// import the Intervention Image Manager Class
	use Intervention\Image\ImageManagerStatic as Image;

	// configure with favored image driver (gd by default)
	Image::configure(array('driver' => 'imagick'));

	// and you are ready to go ...
	$image = Image::make('public/foo.jpg')->resize(300, 200);

4. Sử dụng đối với Laravel:

Mở file config/app.php:

  • Thêm vào providers dòng:
                 Intervention\Image\ImageServiceProvider::class,
            
  • Thêm vào aliases dòng:
                 'Image' => Intervention\Image\Facades\Image::class,
            

Theo mặc định, Intervention/Image sử dụng phần mở rộng thư viện GD của PHP để xử lý tất cả các hình ảnh. Nếu bạn muốn chuyển sang Imagick, bạn có thể copy tệp cấu hình vào ứng dụng của mình bằng cách chạy lệnh sau:

  • Laravel 5
    			$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
    		
  • Laravel 4
    			$ php artisan config:publish intervention/image
    		

Trong Laravel 5, tệp cấu hình được copy vào config/image.php. Trong phiên bản Laravel 4 hoặc cũ hơn sẽ là app/config/packages/intervention/image/config.php. Bạn có thể tùy chỉnh cho phù hợp với ứng dụng của mình.

Ví dụ:

	// usage inside a laravel route
	Route::get('/', function()
	{
	    $img = Image::make('foo.jpg')->resize(300, 200);

	    return $img->response('jpg');
	});

Chúc bạn thành công!