Comment installer et utiliser le plug-in Yii2 Imagine

小云云
Libérer: 2023-03-20 06:50:02
original
2108 Les gens l'ont consulté

Imagine est une bibliothèque de classes PHP orientée objet pour la manipulation d'images. Cette bibliothèque de classes peut gérer certaines opérations couramment utilisées telles que le redimensionnement, le recadrage, l'application de filtres, etc. Sa bibliothèque de classes Color peut être utilisée pour générer des valeurs RVB pour n'importe quelle couleur donnée. Il fournit également quelques méthodes pour dessiner des graphiques tels que des arcs, des ellipses, des lignes, des tranches, etc. De plus, une classe de police flexible peut être utilisée pour charger n'importe quel fichier de police, puis insérer du texte dans l'image. Imagine est une bibliothèque de classes qui sera fréquemment mise à jour, à l'avenir, elle implémentera également des fonctions telles que la génération de graphiques et des filtres à coins arrondis. Cet article présente principalement l'installation et l'utilisation du plug-in de bibliothèque tierce Yii2. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer. J'espère qu'il pourra vous aider.

Installation de Yii2 Imagine

Le téléchargement manuel et l'installation d'Imagine ne seront pas présentés ici, vous pouvez le Baidu vous-même. Nous présentons ici la méthode Composer de Yii2 pour installer Imageine.

Méthode 1


php composer.phar require --prefer-dist yiisoft/yii2-imagine
Copier après la connexion

Méthode 2

Ajoutez le code suivant dans le champ requis du fichier composer.json du projet :


"yiisoft/yii2-imagine": "~2.1.0"
Copier après la connexion

Exécutez ensuite la commande (cmd) dans le répertoire racine du projet :


composer require yiisoft/yii2-imagine
Copier après la connexion

Yii2 utilise Imagine


use yii\imagine\Image;

$srcImg = Yii::getAlias('@webroot/test.jpg');
$aimImg = Yii::getAlias('@webroot/testdeal.jpg');
$srcTTF = Yii::getAlias('@webroot/img/symbol.ttf');

// 缩略
// 参数 inset 表示定框缩略
// 图片完整缩略在 200x100 的框内
// 备注:定框的宽度或高度必须有一个小于图片的实际尺寸,否则直接返回源图尺寸
Image::thumbnail($srcImg, 200, 100, 'inset')->save($aimImg, ['quality'=>100]);

// 缩略
// 参数 outbound 表示单尺寸优先缩略并居中截取
// 该参数为函数的默认值,它会为您尽可能多的截取图片但又不会超出图片范围
// 例:源图 500x200,那么按照高度 100 缩略(变为250x100),然后再居中截取 200x100
// 例:源图 400x350,那么按照宽度 200 缩率(变为200x175),然后再居中截取 200x100
// 例:源图 100x80,那么不缩率不截取,直接返回源图 100x80
Image::thumbnail($srcImg, 200, 100, 'outbound')->save($aimImg, ['quality'=>100]);

// 缩略
// 按宽度 200 缩略,高度自适应
Image::thumbnail($srcImg, 200, null)->save($aimImg, ['quality'=>100]);

// 缩略
// 按高度 100 缩略,宽度自适应
Image::thumbnail($srcImg, null, 100)->save($aimImg, ['quality'=>100]);

// 剪切
// 参数:源图、宽度、高度、起始点
// 将源文件 $srcImg 保存到 $aimImg
Image::crop($srcImg, 400, 200, [100,100])->save($aimImg);

// 旋转
// 未研究
Image::frame('@webroot/img/test-image.jpg', 5, '666', 0)->rotate(-8)->save(Yii::getAlias('@webroot/img/thumb-test-frame.jpg'), ['quality' => 100]);

// 水印
// 未研究
Image::watermark('@webroot/img/test-image.jpg', '@webroot/img/watermark.jpg', [10,10])->save(Yii::getAlias('@webroot/img/thumb-test-watermark.jpg'), ['quality' => 100]);

// 文字水印
// 参数:源图、文字、字体、起始点、字体配置
Image::text($srcImg, 'hello world', $srcTTF, [100,100] ,['color'=>'000000','size'=>50])->save($aimImg, ['quality'=>100]);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!