Laravel框架使用图片处理简单教程

PHP图片处理扩展包使用

文中使用的是Laravel框架,更多框架扩展包请点击传送门-》更多框架集成

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

安装:

使用composer安装:

composer require intervention/image

修改 app/config/app.php 添加 ServiceProvider 如果laravel 为高版本则不需要配置:

//将下面代码添加到 providers 数组中
'providers' => [// ...Intervention\Image\ImageServiceProvider::class,// ...],// 将下面代码添加到 aliases 数组中
'aliases' => [// ...'Image' => Intervention\Image\Facades\Image::class,// ...],

生成 config/image.php 配置文件:

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

运行上面的命令后, 会在项目中生成 config/image.php 配置文件, 打开此文件并将 driver 修改成 imagick 或者 gd (如果图片超过8000像素则使用imagick,gd库可能执行不了):

return array(
'driver' => 'imagick'
);

图像格式支持

可读的图像格式取决于使用的驱动程序。而使用 Imagick 时,它是 可以读取库本身支持的所有格式,仅使用 GD 某些格式是可读和可写的。

在这里插入图片描述

基础用法

// 打开画布$img = Image::make('ikun.jpg')->resize(800,800);// 根据坐标在图片上画一个红色的长方形框
$img->rectangle(10, 11, 14, 16, function ($draw) {//背景色$draw->background('rgba(255, 255, 255, 0)');//边框大小,颜色$draw->border(2, '#FF0000');});
// 输出图片调试$response = Response::make($img->encode('jpg'));$response->header('Content-Type', 'image/jpg');// 将处理后的图片重新保存到其他路径
$img->save('new_ikun.jpg');

下面就是我们运行的结果,输出图片,并将图片保存到了根目录

在这里插入图片描述

intervention提供了非常全面的接口用法,使用方法请查看官网最新文档-》传送门

总结

以上就是在Laravel框架使用图片处理的简单教程。确保阅读intervention的官方文档,根据自己的理解去探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3032355.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

静态分析-RIPS-源码解析记录-01

token流扫描重构部分,这一部分主要利用php的token解析api解析出来的token流,对其中的特定token进行删除、替换、对于特定的语法结构进行重构,保持php语法结构上的一致性 解析主要在lib/scanner.php中通过Tokenizer这个类来实现,也就是在main…

机器学习面试篇

如何理解机器学习数据集的概念 数据集是机器学习的基础,它包括了用于训练和测试模型所需的数据。数据集通常以矩阵的形式存在,其中每一行代表一个样本(或实例),每一列代表一个特征(或属性)。…

SpringAMQP Work Queue 工作队列

消息模型: 代码模拟: 相较于之前的基础队列,该队列新增了消费者 不再是一个,所以我们通过代码模拟出两个consumer消费者。在原来的消费者类里写两个方法 其中消费者1效率高 消费者2效率低 RabbitListener(queues "simple.queue")public voi…

学习网络需要认识的各种设备

网桥(bridge) 网桥工作在数据链路层,可以把多个局域网连接起来,组成一个更大的局域网 以太网中,数据链路层地址就是mac地址,网桥与集线器的区别就是,网桥会过滤mac,只有目的mac地址…

draw.io 网页版二次开发(2):开始修改代码

目录 一 说明 二 打开开发环境 1. 代码调整 2. 修改访问链接 3. 注意 三 部分功能的代码汇总 1. 保存功能 2. 菜单栏折叠按钮功能 3. 顶部菜单栏 4.在顶部菜单栏中的【文件】菜单中新增选项 (1) 方法一:单独增加 (…

calllback回调函数:同步调用,异步调用,异步回调

纯python代码的异步回调 # _*_ encoding:utf-8 _*_ import time import threading callback_value None onFlag Truedef add(a, b, num):print(f"I am the function: %s, please wait for %d" % (add.__name__, num))time.sleep(num)c a bprint("a b 1 &…

K8S搭建

文章目录 K8S搭建配置要求 安装 Kuboard-Spray加载离线资源包规划并安装集群访问集群重启Kubernetes集群Worker节点不能启动许多Pod一直Crash或不能正常访问 containerd配置网络代理 常用的 kubectl 命令: K8S搭建 安装高可用的Kubernetes集群 配置要求 对于 Kub…

Springboot+mybatis-plus+dynamic-datasource+继承DynamicRoutingDataSource切换数据源

Springbootmybatis-plusdynamic-datasource继承DynamicRoutingDataSource切换数据源 背景 最近公司要求支持saas,实现动态切换库的操作,默认会加载主租户的数据源,其他租户数据源在使用过程中自动创建加入。 解决问题 1.通过请求中设置租…

软件产品检测认证是什么?

软件产品检测认证是软件企业、系统集成商或软件商为了提高自身产品的竞争力,增强客户信心,通过第三方机构对企业的软件产品质量和可靠性进行全面测试与评估的过程。这一过程主要关注软件产品的功能、性能、安全性、可维护性等方面,确保软件产…

FileLink跨网文件传输医疗行业解决方案

随着医疗行业的快速发展,医疗机构之间的信息共享和文件传输需求日益增加。然而,由于网络环境的复杂性和数据安全性的要求,传统的文件传输方式已经无法满足医疗行业的需求。为此,我们推出了FileLink跨网文件传输医疗行业解决方案&a…

炫酷个人主页(源码免费)

炫酷个人主页 效果图部分代码领取源码下期更新预报 效果图 部分代码 <!DOCTYPE html> <!--哪怕是深爱之人 对我们的痛苦一无所知&#xff01;* ░░░░░░░░░░░░░░░░░░░░░░░░▄░░* ░░░░░░░░░▐█░░░░░░░░░░░▄▀▒▌░* ░…

智能座舱语音助手产品方案

一、用户调研与痛点分析 1.目标用户分析 用户画像 性别女性年龄50地域2-3线城市职业退休或退居二线教育中专、 大专、 本科财务家庭财务管理者爱好享受生活、 照顾家庭标签有闲有小钱二、产品定位与卖点提炼 购车目的 愉悦自我&#xff0c; 专属于自己的座驾&#xff1a; 家…

26-ESP32-S3 的 FLASH分区表以及 SPIFFS 文件系统 和spiffsgen.py工具

ESP32-S3 的 SPIFFS 文件系统 ESP32-S3的ROM&#xff0c;RAM&#xff0c;FLASH 存储器类型描述容量内部存储器ROM用于存储固定的程序代码和数据384KBSRAM用于存储运行时的程序数据512KBRTC SRAM在深度睡眠模式下仍然保持数据16KB外部存储器PSRAM片外用于存储运行时的程序数据…

【生信技能树】数据挖掘全流程

R包的安装&#xff0c;每次做分析的时候先运行这段代码把R包都安装好了&#xff0c;这段代码不需要任何改动&#xff0c;每次分析直接运行。 options("repos""https://mirrors.ustc.edu.cn/CRAN/") if(!require("BiocManager")) install.packag…

vue 点击平滑到指定位置并绑定页面滑动效果

1.html元素 写出对应的数据块&#xff08;注意添加ref) 用于获取元素位置 <template><div class"index-page" ><div class"top-head" ref"index"><img src"logo.png" style"height: 40px;margin-right: 2…

大模型面试常考知识点1

文章目录 1. 写出Multi-Head Attention2. Pre-Norm vs Post-Norm3. Layer NormRMS NormBatch Norm 4. SwiGLU从ReLU到SwishSwiGLU 5. AdamW6. 位置编码Transformer位置编码RoPEALibi 7. LoRA初始化 参考文献 1. 写出Multi-Head Attention import torch import torch.nn as nn …

【VMware】vSphere 8.0 安装和设置简介

本信息的目标读者为熟悉虚拟机技术和数据中心操作并具有丰富经验的 Windows 或 Linux 系统管理员。 vSphere 8.0 提供了各种安装和设置选项&#xff0c;这些选项定义了相应的任务序列。 vSphere 的两个核心组件是 ESXi 和 vCenter Server。ESXi 是可用于创建和运行虚拟机和虚拟…

【算法】最短路问题 bfs 到 dijkstra

1976、到达目的地的方案数 你在一个城市里&#xff0c;城市由 n 个路口组成&#xff0c;路口编号为 0 到 n - 1 &#xff0c;某些路口之间有 双向 道路。输入保证你可以从任意路口出发到达其他任意路口&#xff0c;且任意两个路口之间最多有一条路。 给你一个整数 n 和二维整…

laravel8 导入 excel常见问题

上传xls 或 xlsx 文件后&#xff0c;文件解析为 zip 格式&#xff0c;输入正常情况&#xff0c;不影响解析 里面的内容 遇到解析内容&#xff0c;解析为空的情况&#xff0c;可能是 因为excel 存在多个 Sheet1 造成&#xff0c;服务器不能解析一个 Sheet1 的情况&#xff0…

小程序获取手机号,用户昵称,头像

一、手机号 在微信小程序中&#xff0c;获取用户手机号也需要用户的明确授权。你可以使用 button 组件的 open-type 属性设置为 getPhoneNumber 来实现这个功能。当用户点击这个按钮时&#xff0c;会弹出一个对话框请求用户的授权。如果用户同意&#xff0c;你可以在 bindgetp…