【问题标题】:Intervention Image rounded corners upload干预图片圆角上传
【发布时间】:2015-04-14 14:47:19
【问题描述】:

我正在尝试将我的文件上传为圈子,但无法正常工作。 我已经看到一些关于对图像应用掩码的主题,但是当我应用掩码时,它需要很长时间并且服务器会关闭请求。

我正在为 Laravel 使用 Intervention Image

我的代码如下:

$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}"));

createCircleMask 方法如下所示:

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

【问题讨论】:

    标签: php image laravel laravel-5 intervention


    【解决方案1】:

    这是一个适用于我的情况的函数。但如果我使用 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");
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-01
      • 2014-12-06
      • 1970-01-01
      • 2017-08-20
      • 2016-09-22
      • 2021-03-15
      • 2018-01-06
      • 1970-01-01
      相关资源
      最近更新 更多