thinkphp中的Image操作方法是什么

thinkphp中的Image操作方法是什么

这篇文章主要讲解了“thinkphp中的Image操作方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“thinkphp中的Image操作方法是什么”吧!

不依赖任何框架

thinkphp中的Image操作方法是什么

一般情况下都会安装gd库

需要Imagick请安装 https://pecl.php.net/package/imagick

安装

composerrequirewhereof/think-image

实例化类库

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

默认使用GD库进行图像操作,如果需要使用Imagick库操作的话,需要改成:

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

图像操作

下面来看下基础的图像操作功能的使用方法。

打开图像文件

假设当前入口文件目录下面有一个1.jpg文件

使用open方法打开图像文件进行相关操作:

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

也可以简化成下面的方式:

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

获取图像信息

可以获取打开图片的信息,包括图像大小、类型等,例如:

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

裁剪图片

使用crop和save方法完成裁剪图片功能。

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

支持从某个坐标开始裁剪,例如下面从(100,30)开始裁剪:

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

生成缩略图

使用thumb方法生成缩略图

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

可以支持其他类型的缩略图生成,设置包括\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;//固定尺寸缩放类型

居中裁剪

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

左上角剪裁

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

缩放填充

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

固定大小

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

添加图片水印

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

water方法的第二个参数表示水印的位置,可以传入下列Think\Imag类的常量或者对应的数字:

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

例如:

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

还可以支持水印图片的透明度(0~100,默认值是80),例如:

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

也可以支持给图片添加文字水印(假设在入口文件的同级目录下存在1.ttf字体文件),例如:

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

感谢各位的阅读,以上就是“thinkphp中的Image操作方法是什么”的内容了,经过本文的学习后,相信大家对thinkphp中的Image操作方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

发布于 2022-01-10 23:47:33
收藏
分享
海报
0 条评论
40
上一篇:php一个字段值如何去掉重复值 下一篇:jquery中的confirm如何使用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码