干预图片圆角上传

2023-12-29

我正在尝试将文件上传为圆圈,但无法使其工作。 我看过一些有关对图像应用蒙版的主题,但是当我应用蒙版时,它需要很长时间并且服务器会关闭请求。

我正在使用Intervention ImageLaravel 的库

我的代码如下:

$identifier = "{$this->loggedUser->id}" . str_random(9) . ".{$file->getClientOriginalExtension()}";
$mask = $this->createCircleMask(200, 200);
$thumbMask = $this->createCircleMask(40, 40);
Image::make($file->getRealPath())->mask($mask)->save(public_path("images/profile/{$identifier}"));
Image::make($file->getRealPath())->mask($thumbMask)->save(public_path("images/profile/thumbs/{$identifier}"));

The createCircleMask方法如下所示:

public function createCircleMask($width, $height)
{
    $circle = Image::canvas($width, $height, '#000000');
    return $circle->circle($width - 1, $width / 2, $height / 2);
}

这是一个适用于我的情况的函数。但ONLY如果我使用 imagick 驱动程序。标准 gd 库非常非常慢,至少在我的测试计算机上是这样。 您可以查看vendor\intervention\image\src\Intervention\Image\Gd\Commands\MaskCommand.php以找出原因。

public function upload() {

    $path = storage_path('app')."/";

    $image = \Image::make(\Input::file('image'));
    $image->encode('png');

    /* if you want to have a perfect and complete circle using the whole width and height the image
     must be shaped as as square. If your images are not guaranteed to be a square maybe you could
     use Intervention's fit() function */
    //  $image->fit(300,300);

    // create empty canvas
    $width = $image->getWidth();
    $height = $image->getHeight();
    $mask = \Image::canvas($width, $height);

    // draw a white circle
    $mask->circle($width, $width/2, $height/2, function ($draw) {
        $draw->background('#fff');
    });

    $image->mask($mask, false);
    $image->save($path."circled.png");

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

干预图片圆角上传 的相关文章

  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • 如何使用 php 发送服务器错误响应?

    一旦用户点击删除按钮我的 jQuery 脚本要求服务器删除所选项目 现在我想要我的php发送成功或错误响应的脚本 是否有可能触发错误回调万一该项目无法删除 Thanks 我的 jQuery 代码 ajax type post url myA
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 如何在 PHP 中从 IP 地址/国家/地区名称查找时区 ID?

    谁能告诉我 PHP 中是否有任何方法可以从 IP 地址或国家 地区名称获取时区区域 例如 亚洲 加尔各答 描述 我正在尝试根据他 她的国家 地区设置用户时区 我从他的 IP 地址获取用户所在国家 地区 但我需要该国家 地区的时区区域 例如
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多

随机推荐

  • 不允许远程表值函数调用

    我怎样才能做到这一点 我正在从远程链接服务器运行表值函数 我尝试在这 4 部分命名中不添加锁定 但仍然遇到相同的错误 我使用 mssql 2008 select from 110 10 10 100 testdbname dbo ufn g
  • 如何将 Micrometer 与 @WebMvcTest 连接起来

    我正在尝试测试 Spring Boot 2 3 Controller通过 Actuator Prometheus 执行指标 WebMvcTest 不幸的是 这在 NPE 中失败了 可能是因为测试中不存在 Micrometer Prometh
  • 如何使用 Visual Studio 2015(企业版)构建 boost 版本 1.58.0

    我喜欢使用 新的 Visual Studio 2015 企业版 构建 boost 1 58 0 过去我是按以下方式进行的 从以下位置下载 boost 1 58 0www boost org http www boost org 提取文件 例
  • HTTPServletRequest.getInputStream() 总是接收空行

    客户端 public List
  • Sproutcore 和 Ember 之间的区别

    在 Ember 从 sproutcore 分叉之前 我就选择了 sproutcore 作为框架 我不确定该走哪条路 而且对碎片化造成的努力明显稀释感到有点沮丧 因为这很少会带来更好的事情 Sproutcore 2 0 现在的 Ember 的
  • NDB:对查询结果进行排序

    在 App Engine NDB 中 我正在查询具有重复属性的实体 我想按表示该属性的数组的长度对结果进行排序 我希望我能做什么 Entity query order len Entity repeatedProp 您需要添加一个ndb I
  • gcloud 命令突然根本不起作用

    All gcloud命令突然给出这个错误 错误 gcloud 加载失败 没有名为 google appengine ext 的模块 这通常表明您的 gcloud 安装或 你的Python解释器有问题 请验证以下是否是有效的 Python 2
  • 如何在 Clojure 中使用 definterface?

    Clojure 1 2 0 似乎有一个definterface形式 显然是为了创建 Java 接口 有些人建议使用它 例如 一个答案这个数字运算问题 https stackoverflow com questions 3124344 clo
  • 当 xsl 本身第一页就足够时避免第二页

    我已经找到了问题的解决方案 要感谢你们所有人 因为如果没有你们及时的解决方案和建议 这是不可能实现和解决的 非常感谢 这个问题的解决方案已经实现 非常感谢 要解决您的问题 请将以下所有内容保留在单个表中并将其添加到表标题中 参考您的 xsl
  • JavaScript 正则表达式捕获小数点的重复部分

    寻找最佳方法来获取具有可能重复的小数部分的任意数字 并发现重复部分 如果存在 最终 我需要用上划线符号 使用 css 文本装饰或 MathML mline 来装饰数字 所以我还需要知道重复开始的索引 所以我需要正则表达式来得到 或者可以在算
  • 无法将有序数据写入 Spark 中的镶木地板

    我正在使用 Apache Spark 生成镶木地板文件 我可以按日期对它们进行分区 没有任何问题 但在内部我似乎无法按正确的顺序排列数据 在处理过程中顺序似乎丢失了 这意味着镶木地板元数据不正确 具体来说 我想确保镶木地板行组反映排序顺序
  • 将回归结果输出到 R 中的数据帧中

    我想知道是否有任何命令可以将 lm 模型的结果输出到 R 中的数据帧中 就像 SAS 中的 outest 一样 有任何想法吗 我正在运行多个模型 我希望结果如下所示 Model alpha Beta Rsquared F df model0
  • 为什么 BigQuery 加载作业统计信息会返回查询信息?

    我们有一些加载作业 可以从 GCS 中获取文件 并将它们加载到 BigQuery 中进行分析 我们使用JobConfigurationLoad class https developers google com resources api
  • Android:将sqlite数据库内容加载到webview

    我有一个sqlite我有一个要加载的内容的数据库webview 如我所愿从数据库中选择并在网页视图中显示 有什么办法可以做到吗 public class TataworatYawmeeh extends Activity WebView w
  • 共享内存与 Go 通道通信

    Go 的口号之一是不要通过共享内存进行通信 相反 通过通信来共享内存 http golang org doc effective go html concurrency 我想知道 Go 是否允许在同一台机器上运行的两个不同的 Go 编译的二
  • Jupyter python3笔记本无法识别pandas

    我正在使用 Jupyter 笔记本并选择了 Python 3 在单元格的第一行我输入 import pandas as pd 我从笔记本中得到的错误是 ImportError 没有名为 pandas 的模块 如何将pandas安装到jupy
  • 使用 matplotlib 设置网络中的动态节点形状

    第一次在这里发帖 请大家多多包涵 我正在尝试在 Networkx 中绘制不同类型的字符网络 并希望为每种类型设置不同的节点形状 例如 我希望角色是圆形 生物是三角形等 我已经尝试了几个小时来解决这个问题并进行了广泛的搜索 但我还没有找到一种
  • 如何验证自签名认证

    我会清楚地向您提供我的问题 以便您可以回答我 我有一个使用 SslStream 保护的客户端 服务器 套接字 连接 据我所知 使用 ssl 确保我的客户端只会连接到我的服务器 为此 我必须向客户端添加一个函数来验证服务器认证并确保服务器是真
  • ClassNotFoundException,在运行 Hadoop 示例作业时

    我已经开始做一些关于 hadoop 的事情了 它已设置并正常运行 现在我正在做一个单节点 独立集群 我正在尝试运行示例作业 如上面提到的http hadoop apache org common docs r0 18 3 mapred tu
  • 干预图片圆角上传

    我正在尝试将文件上传为圆圈 但无法使其工作 我看过一些有关对图像应用蒙版的主题 但是当我应用蒙版时 它需要很长时间并且服务器会关闭请求 我正在使用Intervention ImageLaravel 的库 我的代码如下 identifier