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

Let's talk about Image operations in thinkphp

藏色散人
Release: 2022-01-18 10:18:01
forward
3089 people have browsed it

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
Copy after login

Instantiation class library

$image = new \whereof\ThinkImage\Image();
Copy after login

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');
Copy after login

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');
Copy after login

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库
Copy after login

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

Crop picture

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

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

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');
Copy after login

Generate thumbnails

Use the thumb method to generate thumbnails

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

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

Centered cropping

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

Upper left corner crop

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

Scale filling

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

Fixed size

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

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");
Copy after login

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

For example:

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

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");
Copy after login

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");
Copy after login

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!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template