Home  >  Article  >  PHP Framework  >  Let's talk about Image operations in thinkphp

Let's talk about Image operations in thinkphp

藏色散人
藏色散人forward
2022-01-10 16:26:563064browse

The followingthinkphp frameworktutorial column will introduce you to the Image operation in thinkphp3.2.3. I hope it will be helpful to friends in need!

Refer to Image operation in thinkphp3.2.3

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

Does not depend on any framework

Under normal circumstances, the gd library will be installed

If you need Imagick, please install https://pecl.php. net/package/imagick

Installation

composer require whereof/think-image

Instantiation class library

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

The GD library is used by default for image operations. If you need to use the Imagick library for operation, you need Change to:

$image = new \whereof\ThinkImage\Image(\Think\Image::IMAGE_IMAGICK); 
// 或者采用
$image = new \whereof\ThinkImage\Image('Imagick');

Image operation

Let’s take a look at how to use the basic image operation function.

Open the image file

Assume there is a 1.jpg file under the current entry file directory

Use the open method to open the image file for related operations:

$image = \whereof\ThinkImage\Image(); 
$image->open('./1.jpg');

It can also be simplified to the following method:

$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库

Get image information

You can get the information of opening the picture, including image size, type, etc., for example:

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

Crop picture

Use crop and save methods to complete the image cropping function.

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

Supports cropping starting from a certain coordinate, for example, starting from (100, 30):

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

Generate thumbnails

Use the thumb method to generate thumbnails

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

can support other types of thumbnail generation. The settings include the following constants or corresponding numbers of \whereof\ThinkImage\Image:

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

Centered cropping

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

Upper left corner crop

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

Scale filling

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

Fixed size

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

Add image watermark

//将图片裁剪为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");

The second parameter of the water method represents the watermark Position, you can pass in the following Think\Imag class constants or corresponding numbers:

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

For example:

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

It can also support the transparency of the watermark image (0~100, the default value is 80) , for example:

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

can also support adding text watermarks to pictures (assuming there is a 1.ttf font file in the same directory as the entry file), for example:

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

Recommended learning: "The latest 10 thinkphp video tutorials"

The above is the detailed content of Let's talk about Image operations in thinkphp. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete