下面thinkphp框架教程栏目将给大家介绍关于thinkphp3.2.3中的image操作,希望对需要的朋友有所帮助!
独立thinkphp3.2.3中image操作参考thinkphp3.2.3中image操作
https://www.kancloud.cn/manual/thinkphp/1878
不依赖任何框架
一般情况下都会安装gd库
需要imagick请安装 https://pecl.php.net/package/imagick
安装composer require whereof/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);
推荐学习:《最新的10个thinkphp视频教程》
以上就是聊聊有关thinkphp中的image操作的详细内容。