Laravel Imgso
Laravel Imgso ΠΏΠ°ΠΊΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ Laravel 4 ΠΈ 5 Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PHP Imagine. ΠΡΠ» Π²Π΄ΠΎΡ
Π½ΠΎΠ²Π»ΡΠ½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Croppa, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ URL-Π°Π΄ΡΠ΅ΡΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΎΠ±ΡΠ΅Π·ΠΊΠ°, ΠΏΠΎΠ²ΠΎΡΠΎΡ ΠΈ ΡΠ»ΠΈΠΏ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΡ, ΠΊΠ°ΠΊ Π½Π΅Π³Π°ΡΠΈΠ², ΠΎΡΡΠ΅Π½ΠΊΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ, Π³Π°ΠΌΠΌΠ°, ΡΠ°ΡΡΠ²Π΅ΡΠΊΠ° ΠΈ ΡΠ°Π·ΠΌΡΡΠΈΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΈΠ»ΡΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ., (*1)
, (*2)
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² URL-Π°Π΄ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π£ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΡΡΠΈ, ΡΡΠΎ ΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ** ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΎΠ±Ρ
ΠΎΠ΄Ρ PHP Π΄Π»Ρ Π²ΡΠ΅Ρ
Π±ΡΠ΄ΡΡΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² **., (*3)
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠΎΠΌΡ URL-Π°Π΄ΡΠ΅ΡΡ:, (*4)
/uploads/photo.jpg
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΡΠΈΡ 300x300 ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΡΠ½ΠΎ-Π±Π΅Π»ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ URL-Π°Π΄ΡΠ΅Ρ:, (*5)
/uploads/photo-imgso(300x300-crop-grayscale).jpg
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ URL-Π°Π΄ΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Imgso :: url (), (*6)
Imgso::url('/uploads/photo.jpg',300,300,array('crop','grayscale'));
ΠΈΠ»ΠΈ, (*7)
<img src="<?=Imgso::url('/uploads/photo.jpg',300,300,array('crop','grayscale'))?>" />
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Imgso :: make (). ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΠΎΠΏΡΠΈΠΈ, ΡΡΠΎ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Imgso :: url ()., (*8)
Imgso::make('/uploads/photo.jpg',array(
'width' => 300,
'height' => 300,
'grayscale' => true
))->save('/path/to/the/thumbnail.jpg');
ΠΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Imagine Π½Π°ΠΏΡΡΠΌΡΡ, (*9)
$thumbnail = Imgso::open('/uploads/photo.jpg')
->thumbnail(new Imagine\Image\Box(300,300));
$thumbnail->effects()->grayscale();
$thumbnail->save('/path/to/the/thumbnail.jpg');
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Imagine Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. Imagine ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ GD2, Imagick, Gmagick ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ (http://imagine.readthedocs.org/en/latest/)., (*10)
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΡΠΈΠ»ΡΡΡΡ, Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ):
- Π Π΅ΡΠ°ΠΉΠ· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
- ΠΠ±ΡΠ΅Π·ΠΊΠ° (Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ)
- ΠΡΠ°ΡΠ΅Π½ΠΈΠ΅
- Π§Π΅ΡΠ½ΠΎΠ΅ ΠΈ Π±Π΅Π»ΠΎΠ΅
- ΠΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠ°ΠΌΠΌΠ°
- Π Π°Π·ΠΌΡΡΠΈΠ΅
- Π Π°ΡΠΊΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅
- Π§Π΅ΡΠ΅ΡΡΡΡΠΎΡΠ½Π°Ρ ΡΠ°Π·Π²Π΅ΡΡΠΊΠ°, (*11)
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π²Π΅ΡΡΠΈΠΉ
| Laravel |
Imgso |
| 4.2.x |
dev-master |
| 5.0.x |
dev-master |
| 5.1.x |
dev-master |
| 5.2.x |
dev-master |
| 5.3.x |
dev-master |
| 5.4.x |
dev-master |
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ:
-
gd ΠΈΠ»ΠΈ Imagick ΠΈΠ»ΠΈ Gmagick
-
exif - Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°:
1- ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ require Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° composer.json., (*12)
{
"require": {
"sequelone/imgso": "dev-master"
}
}
ΠΈΠ»ΠΈ, (*13)
composer require sequelone/imgso dev-master
2- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Composer, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ., (*14)
$ composer install
ΠΈΠ»ΠΈ, (*15)
$ composer update
3- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΡΡΠ»ΡΠ³ Π² ΡΠ°ΠΉΠ» config/app.php, (*16)
'Sequelone\Imgso\ImgsoServiceProvider',
4- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΡΠ°Π΄ config/app.php, (*17)
'Imgso' => 'Sequelone\Imgso\Facades\Imgso',
5- ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ², (*18)
$ php artisan vendor:publish --provider="Sequelone\Imgso\ImgsoServiceProvider"
6- ΠΡΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, (*19)
config/imgso.php
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠ»Π°Π½Ρ Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅
ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠ΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ°ΡΡ ΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ., (*20)
- ΠΠΎΠ»Π΅Π΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π―ΡΠΊΠΎΡΡΡ ΠΈ ΠΠΎΠ½ΡΡΠ°ΡΡ
- ΠΠΎΠ»ΡΡΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠΈ ΠΏΠΎΠΊΠ°Π·Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
- Artisan Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ