5

我一直在想最好的解决方案,尽可能多地阅读我越来越困惑。有很多不同的库和助手(其中大多数已经过时或者CI 1.x),我真的需要你的帮助。处理新闻网站(基于codeigniter的自定义CMS)的图像缩略图的最佳方式?

我有一个基于CodeIgniter 2.1.3的自定义CMS,主页上有40-50幅图像的新闻网站,但其中80%是3种不同尺寸的小缩略图,另外20%当我列出来自某个类别的新闻时,主页上的图像有2种尺寸+内部页面,有1种尺寸的缩略图。所以总的来说,我将需要新闻故事的原始图像,主页的缩略图尺寸为+ 5-6。

处理这个问题的最明智的方法是什么?我们可以说每天有10-50条新消息。

  1. 在上传过程中,为每个图像创建5-6个缩略图还是更好吗?
  2. “即时”方法如何?正如我所读到的,我更加关注这个方法,只有第一个访问者会调用库/帮助程序来生成缩略图,而其他人则已经创建了缩略图,因此它不会浪费CPU。这个方法呢?这是不错的做法吗?

什么缓存技术我应该用这些我需要什么?

另外我忘了问,其他CMS系统如何处理生成缩略图?我的意思是关于Wordpress,Drupal,Joomla等。

他们是否存储预定义的大小或动态生成它们?

我猜他们的逻辑应该是最好的,或者不是,但我想在我的CodeIgniter CMS中实现一些智能。

我没有提到,但我认为这并不重要,我使用Grocery CRUD作为管理面板。

任何帮助表示赞赏。

回答

0

我喜欢Drupal管理这个的方式。在Drupal 6中,有一个名为imagecache的模块(现在在Drupal 7中处于核心,但功能非常相似),它基本上存储了图像预置(图像大小,转换,效果...)以及访客请求图像该模块根据预设生成不同的图像并提供此图像。通过这种方式您可以上传图片,但为了不同的目的而拥有不同的图片

该模块有一个非常有用的功能,如果您想更改一个预设,您可以“刷新”与该预设相关的所有图像,以便访问者可以看到更改。

当然还有在Drupal许多其他模块imagecache或图像风格,即添加其他效果,如水印相关...

的更多信息:

2

您最好的选择是在飞行中创建图像+使用像Amazon Cloudfront这样的CDN缓存调整后的版本你的源图像的ns。

我一直在使用CodeIgniter多年建立网站,在整个网站使用大量不同大小的图像。在开始时,我曾经在上传过程中创建了原始图像所需的所有大小(最终可能会超过5个缩略图)。事实证明,它可以提供最佳的性能 - 无论何时您需要特定大小的图像,只需将其包含在内,不需要额外的PHP处理。但是我注意到,我最终在服务器上获得了大量的图像,其中较旧的图像甚至可能不会经常被使用(例如:一年前的文章)。加上这种方式发展需要更长的时间

然后我开始创建图像,首先使用第三方库,后来开发了我自己的CodeIgniter接口。这可以节省大量时间,因为在上传过程中,您可以保存原始版本的图像,而不必担心重新调整大小的版本。在前端显示图像时,您通常需要做的是通过所需图像的某些尺寸。这样做,不仅可以获得图像的5-6版本,而且可以获得所需的多个版本。当您重新设计可能需要不同大小图像的网站时,这也是未来的解决方案!当您的5个缩略图选项不再有效且您需要不同尺寸时,您会做什么?

你是对的,即时调整图像大小可能真的是CPU消耗操作(特别是涉及大图像时),因此缓存是必须的。您可以将图像缓存在服务器上,或在其上获取CDN。 为了保持服务器整洁,我通常运行一个cron作业来删除比我们说的一周更早的动态图像。这节省了空间+不会造成伤害 - 无论何时需要显示图像,它都会被重新创建。

+0

这就是为什么我更成“对飞”的方法,所以现在请告诉我什么是这样做如何做到这一点的最佳途径, ,使用哪个库,如何使用它等。 – MarkC

+0

你可以玩这个:http://phpthumb.sourceforge.net/。但是,我发现它是一个相当沉重的库,它可能会导致一些处理开销。我不知道专门为CodeIgniter提供的这些函数库,而且我自己编写了这些函数库。给我留言,如果你想看看它。否则,您可以查找原生PHP的库,而不是专门用于CI;他们应该很容易整合。 – Aidas

+0

我链接到一个专门针对低于 – stef

相关问题