您的当前位置:首页>全部文章>文章详情

【PHP】php图像处理库(intervention/image)

CrazyPanda发表于:2024-03-25 20:17:32浏览:323次TAG:

Intervention Image 是一个开源的 PHP 图像处理和操作 库。它提供了一个更简单也更优雅的方式来创建/编辑/组合图像,并且支持最常见的两个图像处理库 GD Library 和 Imagick 。

它的让PHP处理图片的代码,变得更简单,并且更有可读性,更容易理解。无论是我们希望创建图像缩略图,增加水印,给大图片转码压缩,他都可以让我们的代码更少,更具有可读性。

官网

http://image.intervention.io

安装

composer require intervention/image

用法

//导入autoload.php自动加载
require '../vendor/autoload.php';

//导入ImageManager类
use Intervention\Image\ImageManager;

//生成ImageManager对象
$manager = new ImageManager();

//创建新的图像资源
$img = $manager->make('image1.jpeg');

//调整当前图像大小
$img->resize(400,400);

//保存生成新图片
$image->save('2.jpg');

接口方法

创建新的图像资源
//创建新的图像资源
$img = $manager->make('image1.jpeg');
创建画布资源
//创建画布资源
$img = $manager->canvas(500, 500, '#fff');
操作图片
//调整当前图像大小
$img->resize(400,400);

//模糊效果 0-100 越大越模糊
$img->blur(80);

//图片亮度调节 -100至100 暗>亮
$img->brightness(-80);


//图片的三原色调整(red,green,blue)-100 至 100
$img->colorize(-50, 50, -50);

//图片对比度调整(-100 至 100)
$img->contrast(10);

//图片裁剪(x,y左边起点,width,height)
$img->crop(200, 200, 10, 10);

//水平翻转和垂直翻转
$img->flip('h');
$img->flip('v');


//填充颜色或图片
$img->fill('#cccccc');
$img->fill('walter.jpeg');


//按比例裁剪并重新设置宽高
$img->fit(200, 100);
$img->fit(200);

//图片gamma 光照效果调整
$img->gamma(20);

//图片灰色调
$img->greyscale();

//将当前图像调整为新高度,宽度比例缩放
$img->heighten(400);

//按width比例裁剪
$img->widen(300);

//插入其他图片
$img->insert('walter.jpeg');

//插入调整后的图片
$watermark = $manager->make('walter.jpeg')->resize(50,50)->opacity(20);
$img->insert($watermark, 'bottom-right',10,10);

//图片反色调整
$img->invert();

//设置最大颜色数
$img->limitColors(50, '#ff9900');

//图像的不透明度
$img->opacity(50);

//像素化图像(马赛克效果)
$img->pixelate(5);

//旋转图片
$img->rotate(-45);

//锐化图片 0-100
$img->sharpen(90);
画各种图形
//绘制单个像素
$img->pixel('#000000', 10, 10);

//画线
$img->line(10, 10, 200, 200, function ($draw) {
    $draw->color('#000000');
});

//画圆形
$img->circle(100, 200, 200, function ($draw) {
    $draw->background('#000033');//背景颜色
    $draw->border(5, '#000');//边线大小和颜色
});

//画椭圆
$img->ellipse(100, 40, 100, 100, function ($draw) {
    $draw->background('#0000ff');//背景颜色
    $draw->border(1, '#ff0000');//边线大小和颜色
});

//画长方形
$img->rectangle(5, 5, 195, 195, function ($draw) {
    $draw->background('rgba(255, 255, 255, 0.5)');
    $draw->border(2, '#000');
});

//画多边形
$points = array(
    40,  50,  // Point 1 (x, y)
    20,  240, // Point 2 (x, y)
    60,  60,  // Point 3 (x, y)
    240, 20,  // Point 4 (x, y)
    50,  40,  // Point 5 (x, y)
    10,  10   // Point 6 (x, y)
);
$img->polygon($points, function ($draw) {
    $draw->background('#0000ff');
    $draw->border(1, '#ff0000');
});
获取图片相关信息
//获取图片宽度
$width = $img->width();
var_dump($width);exit;

//获取MIME类型
$mime = $img->mime();
var_dump($mime);exit;

//从当前图像读取IPTC元数据
$iptc = $img->iptc();
echo "<pre>";
var_dump($iptc);exit;

//获取图片高度
$height = $img->height();
var_dump($height);exit;

//图片编码(jpg,png,gif,data-url等)
$data = (string) $img->encode('data-url');
$html =<<<EOF
<img src="{$data}"/>
EOF;
echo $html;

//读取图片信息
$data = $img->exif();
echo "<pre>";
var_dump($data);

//获取图片大小
$size = $img->filesize();
var_dump($size);
int(719040)
输出图片资源
//手动输出到浏览器
header('Content-Type: image/jpeg');
echo $img->encode('jpeg');

//HTTP响应,输出到浏览器
echo $img->response();

//保存生成新图片
$image->save('2.jpg');
其他操作
//创建编码图像流
$stream = $img->stream('jpg', 60);
var_dump($stream);exit;


//将文本写入图像
$img->text('The quick brown fox jumps over the lazy dog.',50,50);
$text = "Write text to an image";
$img->text($text, 200, 100, function($font) {
    $font->file("./Lato-Light.ttf");
    $font->size(24);
    $font->color('#fdf6e3');
    $font->align('center');
    $font->valign('top');
    $font->angle(45);
});



//释放内存
$img->destroy();


原文链接https://www.cnblogs.com/hu308830232/p/14948238.html

猜你喜欢

【PHP】自学php需要考哪些证
自学php需要考的证书有Zend PHP Certification、PHP Developer Certification、W3School PHP Certification、O&#39;Reilly Media PHP Certification、Sap PHP Certification等等。详细介绍:1、Zend PHP Certification,是一种权威的认证证书等等。本教程操作系统:windows10系统、PHP8.1.3版本、Dell G3电脑。PHP作为一种开源的
发表于:2023-12-06 浏览:376 TAG:
【PHP】php正则表达式有哪些
php正则表达式有&quot;/pattern/&quot;、&quot;^&quot;、&quot;$&quot;、&quot;.&quot;、&quot;[]&quot;、&quot;[^]&quot;、&quot;[a-z]&quot;、&quot;[A-Z]&quot;、&quot;[0-9]&quot;、&quot;\d&quot;、&quot;\D&quot;、&quot;\w&quot;、&quot;\W&quot;、&quot;\s&quot;、&quot;\S&amp;quo
发表于:2023-12-04 浏览:634 TAG: #php #网络服务器软件
【PHP】PHP8如何高效使用异步编程和代码
深入理解PHP8的新特性:如何高效使用异步编程和代码?PHP8是PHP编程语言的最新主要版本,带来了许多令人兴奋的新特性和改进。其中最突出的特性之一是对异步编程的支持。异步编程允许我们在处理并发任务时提高性能和响应能力。本文将深入探讨PHP8的异步编程特性,并介绍如何高效地使用它们。首先,让我们了解一下什么是异步编程。在传统的同步编程模型中,代码按照线性的顺序执行,一个任务必须等待另一个任务的完成才能继续执行。而在异步编程模型中,可以同时处理多个任务,不必等待其他任务的完成。这种并发执行的方式可
发表于:2024-01-08 浏览:399 TAG:
【PHP】PHP8中如何使用Stringable Interface更方便地处理字符串操作
PHP8中如何使用Stringable Interface更方便地处理字符串操作?PHP8是PHP语言的最新版本,带来了许多新特性和改进。其中一项令开发者欢欣鼓舞的改进之一就是Stringable Interface的加入。Stringable Interface是一个用于处理字符串操作的接口,它提供了一种更方便的方式来处理和操作字符串。本文将详细介绍如何使用Stringable Interface来提升字符串操作的便捷性,并提供具体的代码示例。首先,让我们了解一下Stringable Inte
发表于:2023-12-30 浏览:336 TAG:
【PHP】php会出现哪些漏洞呢
会出现的漏洞有跨站脚本攻击、sql注入、文件包含漏洞、代码注入漏洞、文件上传漏洞、会话劫持、不安全的文件权限等等。详细介绍:1、跨站脚本攻击,xss漏洞通常是由于未正确过滤用户输入导致的,为了防止xss漏洞,开发人员应该对用户输入进行严格的过滤和转义,确保用户输入不会被当作脚本执行;2、sql注入,通常是由于未正确过滤用户输入或者使用不安全的sql查询语句导致的等等。本教程操作系统:windows10系统、PHP8.1.3版本、Dell G3电脑。PHP作为一种广泛使用的服务器端脚本语言,被广泛
发表于:2024-03-17 浏览:329 TAG:
【PHP】Laravel的生命周期面试
在Laravel框架中,生命周期(Lifecycle)指的是从请求到达应用到应用响应请求的一系列过程。这个过程包括了从路由解析到最终视图渲染或响应发送的一系列中间件、控制器逻辑和事件处理。理解Laravel的生命周期对于开发高质量、可维护的应用至关重要。下面是一些关键的环节和概念,可以帮助你准备Laravel生命周期的面试:
发表于:2025-03-20 浏览:44 TAG: #php #laravel
【PHP】PHP面试题之算法题
hp面试题中也会经常出现算法题,本文主要和大家分享PHP面试题之算法题,希望能帮助到大家。面试题——算法题:1、插入排序(一维数组) 基本思想:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。 示例:[初始关键字] [49] 38 65 97 76 13 27 49J=2(38) [38 49] 65 97 76 13 27 49J=3(65) [38 49 65] 97 76 13 27 49J=4(97) [38 49
发表于:2024-05-22 浏览:318 TAG:
【PHP】如何使用PHP在微信小程序中实现AI功能?
如何使用PHP在微信小程序中实现AI功能?随着人工智能的发展,AI(Artificial Intelligence,人工智能)技术被广泛应用于各个领域。微信小程序作为一种强大的移动应用开发平台,也可以集成AI功能,为用户提供更智能的服务。本文将介绍如何使用PHP语言在微信小程序中实现AI功能,并且给出具体的代码示例。首先,我们需要了解微信小程序提供的开发接口和AI技术的实现方案。微信小程序提供了开放平台接口,可以通过接口与后端服务器进行交互。AI技术方面,我们可以选择使用开源的机器学习
发表于:2023-12-25 浏览:319 TAG:
【PHP】PHP判断PC、手机浏览器、微信浏览器、支付宝浏览器
PHP识别不同的请求,主要从请求头user_agent来区分比如PC端谷歌浏览器Mozilla/5.0&nbsp;(Windows&nbsp;NT&nbsp;10.0;&nbsp;Win64;&nbsp;x64)&nbsp;AppleWebKit.........Safari/537.36手机微信浏览器Mozilla/5.0&nbsp;.............&nbsp;MicroMessenger/8.0.42.2460(0x28002A51)&nbsp;WeChat/arm64&nbsp;
发表于:2024-04-11 浏览:281 TAG:
【PHP】php审计中有哪些危险函数
php审计中危险函数有eval()函数、exec()函数、system()函数、passthru()函数、preg_replace()函数、unserialize()函数、include()和require()函数、file_get_contents()函数、unlink()函数、ysql_query()函数等等。详细介绍:1、eval()函数等等危险函数。本教程操作系统:windows10系统、PHP8.1.3版本、Dell G3电脑。在PHP审计过程中,有一些函数被认为是危险的,因
发表于:2023-12-06 浏览:334 TAG: