gpt4 book ai didi

php - 从现有图像创建缩略图的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-02 17:40:51 26 4
gpt4 key购买 nike

我的数据库中有一个图像列,其中包含我的帖子表的图像路径,我在两个不同的地方使用该列,其中一个用于我的博客页面中宽度为 800 像素、高度为 400 像素的单个帖子页面我想使用这些图像,但这次具有不同的宽度和高度(帖子的缩略图)。我有两种选择,但我不确定哪一种更好!第一个我用图像路径、宽度和高度调用一个函数,因此它返回优化版本,说实话,我没有尝试这样做,我不知道幕后发生了什么,我认为这是在服务器上创建缩略图版本?

<img src="{{ resizeImage( url('images/posts/' . $post->image) ), '400', '250') }}" />

第二个是当我上传帖子图像时,我制作了第二个缩略图版本,并将其命名为 THUMBNAIL_1562572708.jpg 例如。

我的问题是关于执行此操作的性能和最佳实践,任何建议,如果有更好的方法,请分享,我正在使用 Laravel,谢谢。

我认为第二个更好,因为我们在发送请求时不需要调用函数或处理某些内容。但这种方式也有一个缺点,那就是重复文件,我很困惑,实际上:(

嗯!这是一个包含真实示例的更新,我想与任何需要帮助的人分享。

您将需要安装这些很棒的软件包

composer require intervention/image intervention/imagecache

请阅读基于 URL 的图像处理机制 http://image.intervention.io/use/url

发布配置文件后,您需要编辑图像缓存配置文件,如下所示:

我想你的图像是公开的/图像!

所以我们将从公共(public)目录中读取。

...
'route' => 'thumbnails',

...

'paths' => array(
// From public
public_path(),
),
...
<img src="{{ 'http://127.0.0.1:8000/your_route_name_that_was_setted_in_imagecache_config_file/your_template_name/images/1.png' }}" />

请注意,您有小、中、大三个默认模板,当然,您可以制作自己的模板。

最佳答案

这个问题的答案可能非常主观,但这是我的两点意见。

一般来说,您应该选择在上传图像期间生成的单独缩略图,或者更好的是在上传图像后在后台生成。使用 Laravel 队列系统,这非常简单。原因很简单,评论中已经提到了:

  • 缩略图只需生成一次(根据每个请求生成缩略图会导致繁重的工作量和潜在的性能问题)
  • 存储成本低且速度快

缩略图的识别可以通过存储缩略图的文件名来完成,或者正如您已经建议的那样,通过使用一些逻辑来根据原始文件解析缩略图。就个人而言,我会使用允许您生成各种不同缩略图的文件夹结构,例如:

 images/
original/
123456789.jpg
thumbnail/
100x100/
123456789.jpg
200x200/
123456789.jpg

目录名称100x100200x200当然可以更改为适合您的名称。使用建议的对我来说意味着缩略图的宽度不超过 100 像素,也不高于 100 像素。这并不意味着每个缩略图都是 100x100 像素,尽管您也可以根据需要实现这样的缩略图生成器。

请注意,如果您为此使用后台工作人员,则可能需要一些后备逻辑来在缩略图仍在生成时显示缩略图。备用图像可以是默认图像或通过 HTML 调整大小的原始图像。

<小时/>

顺便说一句,如果您实现缩略图生成器,您也可以考虑实现图像优化器。大多数图像都可以缩小,而用户不会注意到(显着)差异。这样的系统是否值得,取决于您显示的图像数量以及您网站上的流量。对于频繁使用的网站,这可能是节省一些流量的好主意。现有的解决方案是 spatie/image-optimizer(我与 spatie 没有任何关联)。

关于php - 从现有图像创建缩略图的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56932630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com