php 图片操作类 Intervention Image

摘要:
//createanewimageresourcefromfile$img=Image::make;//orcreateanewimageresourcefrombinarydata$img=Image::make;//createanewimagefromgdresource$img=Image::make;//createanewimagedirectlyfromanurl$img=Image::make;//createanewimagedirectlyfromLaravelfileupload$img=Image::make;resize方法也有多个调用形式,可以指定宽,高,回调函数resize更改尺寸是比较常用的方法,可以修改图片宽高到指定数值,也可以在回调函数里面限制图片不能超过本身原有尺寸。$img-˃resize;save方法可以保存图片,也可以指定保存图片的质量,还可以更改图片格式save//openandresizeanimagefile$img=Image::make-˃resize;//savefileasjpgwithmediumquality$img-˃save;//savethesamefileasjpgwithdefaultquality$img-˃save;//savethefileinpngformat$img-˃save;//savetheimagejpgformatdefinedbythirdparameter$img-˃save;4,增加文字text$manager-˃make-˃text(这是一段说明文字,可以作为防盗图使用,也可以作为水印使用。5,图片进行叠加,插入水印图片insert$img=$manager-˃make;$watermark=$manager-˃make;$img-˃insert-˃save;水印只是这个方法的一种功能。

官方网址:http://image.intervention.io/

1,安装composer require intervention/image (如果使用1.*的版本 ,要安装 "intervention/image": "1.*")

2,使用并初始化对象

require 'vendor/autoload.php';

useInterventionImageImageManager;
//初始化图片驱动模块,默认是gd。也可以使用imagick 如下方式指定
// $manager = new ImageManager(array('driver' => 'imagick'));
$manager = new ImageManager();

3,更改尺寸,并保存

$image = $manager->make('bk/1.jpg')->resize(960, 540)->save('bk/1.jpg', 80);

这里面设计图片对象的创建,更改尺寸,和保存三个步骤

里面的make方法有多种调用形式,可以是图片路径,也可以是图片网址,也可以是输入的文件流。

//create a new image resource from file
$img = Image::make('public/foo.jpg');

//or create a new image resource from binary data
$img = Image::make(file_get_contents('public/foo.jpg'));

//create a new image from gd resource
$img = Image::make(imagecreatefromjpeg('public/foo.jpg'));

//create a new image directly from an url
$img = Image::make('http://example.com/example.jpg');

//create a new image directly from Laravel file upload
$img = Image::make(Input::file('photo'));

resize方法也有多个调用形式,可以指定宽,高,回调函数resize (integer $width, integer $height, [Closure $callback])

更改尺寸是比较常用的方法,可以修改图片宽高到指定数值,也可以在回调函数里面限制图片不能超过本身原有尺寸。也可以只指定宽度或高度,回调里面进行尺寸比率约束。

$img->resize(null, 400, function ($constraint) {
    $constraint->aspectRatio();
    $constraint->upsize();
});

save方法可以保存图片,也可以指定保存图片的质量,还可以更改图片格式save([string $path, [int $quality], [string $format]])

//open and resize an image file
$img = Image::make('public/foo.jpg')->resize(300, 200);

//save file as jpg with medium quality
$img->save('public/bar.jpg', 60);

//save the same file as jpg with default quality
$img->save('public/baz.jpg');

//save the file in png format
$img->save('public/bar.png');

//save the image jpg format defined by third parameter
$img->save('public/foo', 80, 'jpg');

4,增加文字text(string $text, [integer $x, [integer $y, [Closure $callback]]])

$manager->make('bk/0.jpg')->text(这是一段说明文字,可以作为防盗图使用,也可以作为水印使用。', 100, 100, function($font) {
    $font->file('bk/ygyxsziti2.0.ttf');
    $font->size(24);
    $font->color('#fdf6e3');
    $font->align('center');
    $font->valign('top');
    $font->angle(45);
})->save('bk/3.jpg');

text的方法可以给图片上添加文字说明,可以指定文字出行的位置,也可以在回调函数里面增加字体,文字大小,颜色等其他选项。

5,图片进行叠加,插入水印图片i nsert(mixed $source, [string $position, [integer $x, integer $y]])

$img = $manager->make('bk/0.jpg');
$watermark =  $manager->make('bk/1.jpg');
$img->insert($watermark,  'bottom-right', 10, 10)->save('bk/4.jpg');

水印只是这个方法的一种功能。其他可以自行扩展用法。

posttion 参数

top-left (default)
top
top-right
left
center
right
bottom-left
bottom
bottom-right

6,裁剪图像 crop(int $width, int $height, [int $x, int $y])

$img->crop(100, 100, 25, 25);

7,图片镜像 上下翻转flip('v') 左右翻转flip('h')

9,图片颜色反转invert()

10,操作完成后可以手动调用销毁方法,进行对象销毁。

$image->destroy();

其他更多方法可以查看文档。

免责声明:文章转载自《php 图片操作类 Intervention Image》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用Logstash把MySQL数据导入到Elasticsearch中IntelliJ IDEA 2017.3.2永久破解版下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

apache+php+mysql配置

---------------------------------------------------- ★软件工具:(下载时注意下载相应版本,不同版本安装细节可能会有差异!!) 1>httpd-2.4.18-win64-VC14.zip下载地址:http://www.apachelounge.com/download/ 2>php-5.6.16...

delphi 中 image 控件加载bmp、JPG、GIF、PNG等图片的办法

procedure TForm1.Button1Click(Sender: TObject);varjpg: TJPEGImage; // 要use Jpeg单元begin// 显示jpg大图片的方式jpg := TJPEGImage.Create;jpg.LoadFromFile(getcurrentdir() + 'pic.jpg');Image1.P...

php eval函数用法总结

可以在php.ini禁止此函数,结果失败了 eval定义和用法 eval() 函数把字符串按照 PHP 代码来计算。 该字符串必须是合法的 PHP 代码,且必须以分号结尾。 如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。 语法 eval(phpcode) 参数 描述 php...

Memcached内存缓存技术

Memcached是什么,有什么作用? Memcached是一个开源的、高性能的内存缓存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思。 Memcached通过在事先规划好的内存空间中临时缓存数据库中的各类数据,以减少业务直接对数据库的访问,从而减轻数据库的访问压力和网站集群的响应速度。 Memcached服务在企业集群架构中应用场景 1...

Windows平台下PHP开发环境的配置

Windows平台下PHP开发环境的配置 一、基本环境 1、Windows XP 32位 2、Apache 2.2.25,下载地址:http://mirror.bit.edu.cn/apache/httpd/binaries/win32/httpd-2.2.25-win32-x86-openssl-0.9.8y.msi 3、PHP 5.2.17,下载地址:...

【菜鸟学php】小菜鸟由帝国备份王在Wamp环境下打开500错误浅谈PHP程序员

===================问题情况描述=================== 小弟一直在玩discuz论坛开源程序,这个论坛程序经常涉及到论坛搬家的问题。 今天我在本地Wamp环境下,用开源软件帝国备份王2010进行数据库备份数据,结果打开发现报错500! 这真是坑爹了,回想下以前自己使用这个开源程序进行备份也不下于十几次了,大部分都正常成功,...