首页 文章

使用Laravel为社交网站创建缩略图图像

提问于
浏览
1

我想知道是否有人知道解决这个问题的好策略:

我正在使用Laravel 4创建一个社交网站 . 用户可以将图片上传到他们自己的图库 . 这些图片可以是任何形状和大小,但其配置文件中的图库仅显示图像的裁剪和调整大小的缩略图(200px x 200px),您可以单击该图像以查看完整图像 .

我现在使用Laravel插件干预,保存原始图像,然后调整大小并裁剪图像并再次保存(所以现在我有2份) . 然后,我将裁剪/调整大小的图像显示为链接到完整尺寸原始图像的缩略图 . 但是,我发现制作每张图片的副本将是我服务器上繁琐的空间浪费,因为可能会有数千张图片上传到网站 .

有没有办法获取原始图像,调整大小并动态裁剪它并仅在用户加载页面时显示它而不必将缩略图保存到服务器?还是我不得不为每张图片制作裁剪副本?

一个很好的例子显示了我希望实现的目标是Facebook将图片裁剪成用户图片库中的方块,或者当用户将多个图像上传到某个状态时,如何在新闻源上裁剪和调整它们的大小 .

任何意见是极大的赞赏!

2 回答

  • 0

    你见过League/Glide吗?它基本上是干预/图像和干预/ ImageCache的包装器 . Glide's Laravel setup video让你在两分钟内完成设置(注意第二个例子) .

  • 1

    是干预让你操纵和动态显示 . 这是一个简单的例子(显然你实际上是用控制器等)

    Route::get('img/profile/picture.jpg', function(){
        $img = Image::make('path/to/profile/picture.jpg');
    
        // resize, crop, whatever
    
        return $img->response();
    });
    

    然后,您只需将正确的URI设置为此路径,即为您的图像的 src .

    Intervention Docs

    请记住,这将 use more server resources 并使图像 response take longer

相关问题