Maison > cadre php > PensezPHP > le corps du texte

Parlons des opérations sur les images dans thinkphp

藏色散人
Libérer: 2022-01-18 10:18:01
avant
3061 Les gens l'ont consulté

La colonne tutoriellethinkphp framework suivante vous présentera l'opération Image dans thinkphp3.2.3. J'espère qu'elle sera utile aux amis dans le besoin !

Reportez-vous à Opération d'image dans thinkphp3.2.3

https://www.kancloud.cn/manual/thinkphp/1878

Ne dépend d'aucun framework

Dans des circonstances normales, la bibliothèque gd sera installée

Si vous avez besoin d'Imagick, veuillez installer https://pecl.php.net/package/imagick

Install

composer require whereof/think-image
Copier après la connexion

Bibliothèque de classes d'instanciation

$image = new \whereof\ThinkImage\Image();
Copier après la connexion

Par défaut, la bibliothèque GD est utilisé pour les opérations sur les images. Si vous devez utiliser la bibliothèque Imagick Pour le fonctionnement, vous devez le changer en :

$image = new \whereof\ThinkImage\Image(\Think\Image::IMAGE_IMAGICK); 
// 或者采用
$image = new \whereof\ThinkImage\Image('Imagick');
Copier après la connexion

Opération sur l'image

Voyons comment utiliser la fonction d'opération de base sur l'image.

Ouvrez le fichier image

Supposons qu'il y ait un fichier 1.jpg dans le répertoire actuel du fichier d'entrée

Utilisez la méthode open pour ouvrir le fichier image pour les opérations associées :

$image = \whereof\ThinkImage\Image(); 
$image->open('./1.jpg');
Copier après la connexion

Il peut également être simplifié par la méthode suivante :

$image = new \whereof\ThinkImage\Image(\whereof\ThinkImage\Image::IMAGE_GD,'./1.jpg'); // GD库
// 或者
$image = new \whereof\ThinkImage\Image(\whereof\ThinkImage\Image::IMAGE_IMAGICK,'./1.jpg');  // imagick库
Copier après la connexion

Obtenir des informations sur l'image

Vous pouvez obtenir les informations sur l'image ouverte, y compris la taille, le type, etc. de l'image, par exemple :

$width = $image->width(); // 返回图片的宽度
$height = $image->height(); // 返回图片的高度
$type = $image->type(); // 返回图片的类型
$mime = $image->mime(); // 返回图片的mime类型
$size = $image->size(); // 返回图片的尺寸数组 0 图片宽度 1 图片高度
Copier après la connexion

Recadrer l'image

Utilisez les méthodes de recadrage et d'enregistrement pour compléter la fonction de recadrage de l'image .

//将图片裁剪为400x400并保存为corp.jpg
$image->crop(400, 400)->save('./crop.jpg');
Copier après la connexion

prend en charge le recadrage à partir d'une certaine coordonnée, par exemple à partir de (100, 30) :

//将图片裁剪为400x400并保存为corp.jpg
$image->crop(400, 400,100,30)->save('./crop.jpg');
Copier après la connexion

Générer des vignettes

Utiliser la méthode du pouce pour générer des vignettes

// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
$image->thumb(150, 150)->save('./thumb.jpg');
Copier après la connexion

peut prendre en charge d'autres types de génération de vignettes, les paramètres incluent whereofThinkImageImageLes éléments suivants constantes ou nombres correspondants :

IMAGE_THUMB_SCALE     =   1 ; //等比例缩放类型
IMAGE_THUMB_FILLED    =   2 ; //缩放后填充类型
IMAGE_THUMB_CENTER    =   3 ; //居中裁剪类型
IMAGE_THUMB_NORTHWEST =   4 ; //左上角裁剪类型
IMAGE_THUMB_SOUTHEAST =   5 ; //右下角裁剪类型
IMAGE_THUMB_FIXED     =   6 ; //固定尺寸缩放类型
Copier après la connexion

Recadrage centré

// 生成一个居中裁剪为150*150的缩略图并保存为thumb.jpg
$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_CENTER)->save('./thumb.jpg');
Copier après la connexion

Recadrage du coin supérieur gauche

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_NORTHWEST)->save('./thumb.jpg');
Copier après la connexion

Remplissage d'échelle

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_FILLED)->save('./thumb.jpg');
Copier après la connexion

Taille fixe

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_FIXED)->save('./thumb.jpg');
Copier après la connexion

Ajouter un filigrane d'image

//将图片裁剪为440x440并保存为corp.jpg
$image->crop(440, 440)->save('./crop.jpg');
// 给裁剪后的图片添加图片水印(水印文件位于./logo.png),位置为右下角,保存为water.gif
$image->water('./logo.png')->save("water.gif");
// 给原图添加水印并保存为water_o.gif(需要重新打开原图)
$image->open('./1.jpg')->water('./logo.png')->save("water_o.gif");
Copier après la connexion

Le deuxième paramètre de la méthode de l'eau représente l'emplacement du filigrane, vous pouvez transmettre les constantes suivantes ou les numéros correspondants de la classe ThinkImag :

IMAGE_WATER_NORTHWEST =   1 ; //左上角水印
IMAGE_WATER_NORTH     =   2 ; //上居中水印
IMAGE_WATER_NORTHEAST =   3 ; //右上角水印
IMAGE_WATER_WEST      =   4 ; //左居中水印
IMAGE_WATER_CENTER    =   5 ; //居中水印
IMAGE_WATER_EAST      =   6 ; //右居中水印
IMAGE_WATER_SOUTHWEST =   7 ; //左下角水印
IMAGE_WATER_SOUTH     =   8 ; //下居中水印
IMAGE_WATER_SOUTHEAST =   9 ; //右下角水印
Copier après la connexion

Par exemple :

$image->open('./1.jpg')->water('./logo.png',\whereof\ThinkImage\Image::IMAGE_WATER_NORTHWEST)->save("water.jpg");
Copier après la connexion

peut également prendre en charge la transparence des images en filigrane (0~100, la valeur par défaut est 80), par exemple :

$image->open('./1.jpg')->water('./logo.png',\whereof\ThinkImage\Image::IMAGE_WATER_NORTHWEST,50)->save("water.jpg");
Copier après la connexion

peut également prendre en charge les images en filigrane. Ajoutez un filigrane de texte (en supposant qu'il existe un fichier de police 1.ttf dans le même répertoire que le fichier d'entrée), par exemple :

$image->open('./1.jpg')->text('ThinkPHP','./1.ttf',20,'#000000',\whereof\ThinkImage\Image::IMAGE_WATER_SOUTHEAST)->save("new.jpg");
Copier après la connexion

Apprentissage recommandé : "Les 10 derniers didacticiels vidéo thinkphp"

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:segmentfault.com
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