Maison >cadre php >PensezPHP >Parlons des opérations sur les images dans thinkphp

Parlons des opérations sur les images dans thinkphp

藏色散人
藏色散人avant
2022-01-10 16:26:563085parcourir

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

Bibliothèque de classes d'instanciation

$image = new \whereof\ThinkImage\Image();

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');

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');

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库

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 图片高度

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');

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');

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');

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 ; //固定尺寸缩放类型

Recadrage centré

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

Recadrage du coin supérieur gauche

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_NORTHWEST)->save('./thumb.jpg');

Remplissage d'échelle

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_FILLED)->save('./thumb.jpg');

Taille fixe

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_FIXED)->save('./thumb.jpg');

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");

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 ; //右下角水印

Par exemple :

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

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");

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");

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer