处理新闻网站上图像缩略图的最佳方法(基于codeigniter的定制CMS)?

处理新闻网站上图像缩略图的最佳方法(基于codeigniter的定制CMS)?,codeigniter,content-management-system,thumbnails,on-the-fly,Codeigniter,Content Management System,Thumbnails,On The Fly,我一直在思考最好的解决方案,读了很多书,我越来越困惑。有很多不同的库和帮助程序(大多数都是过时的或针对CI 1.x的),我真的需要你的帮助 我有一个基于CodeIgniter 2.1.3的定制CMS,新闻网站在主页上有大约40-50个图像,但其中80%是3种不同大小的小缩略图,主页上其他20%的图像有2种大小+当我从一个类别中列出新闻时,内部页面有1种大小的缩略图。因此,总的来说,我需要新闻故事的原始图像,主页的缩略图大小为+5-6 处理这个问题最聪明的方法是什么?比如说每天会有10-50条新消

我一直在思考最好的解决方案,读了很多书,我越来越困惑。有很多不同的库和帮助程序(大多数都是过时的或针对CI 1.x的),我真的需要你的帮助

我有一个基于CodeIgniter 2.1.3的定制CMS,新闻网站在主页上有大约40-50个图像,但其中80%是3种不同大小的小缩略图,主页上其他20%的图像有2种大小+当我从一个类别中列出新闻时,内部页面有1种大小的缩略图。因此,总的来说,我需要新闻故事的原始图像,主页的缩略图大小为+5-6

处理这个问题最聪明的方法是什么?比如说每天会有10-50条新消息

  • 在上传过程中为每张图片创建5-6个缩略图是否更好
  • 那么“在飞”的方法呢?我更喜欢这个方法,正如我所读到的,只有第一个访问者会调用库/助手来生成缩略图,而对于其他人,缩略图已经创建好了,所以不会浪费CPU。这个方法怎么样?这是个好习惯吗
  • 我应该使用什么缓存技术来满足这些需求

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

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

    我想他们的逻辑应该是最好的,也许不是,但我想在我的CodeIgniter CMS中实现一些智能的东西

    我没有提到,但我认为这并不重要,我使用杂货店积垢的管理面板


    非常感谢您的帮助。

    我喜欢Drupal处理此问题的方式。在Drupal 6中有一个名为imagecache的模块(现在是Drupal 7的核心,但功能非常类似),它基本上存储图像的预设(图像大小、变换、效果…),当访问者要求图像时,该模块会根据预设生成不同的图像,并提供这些图像。通过这种方式,您可以上载图像,但有不同的图像用于不同的目的

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

    当然,Drupal中还有许多其他模块与imagecache或图像样式相关,它们添加了其他效果,如水印

    更多信息:


    您最好的选择是动态创建图像+使用类似于Amazon Cloudfront的CDN来缓存源图像的大小调整版本

    多年来,我一直在使用CodeIgniter构建网站,网站上使用了大量不同大小的图像。起初,我在上传过程中会根据原始图像创建所需的每个尺寸(最终可能会有5个以上的缩略图)。这被证明是提供最佳性能的——每当您需要特定大小的图像时,您只需将其包括在内,而无需额外的PHP处理。然而,我注意到,我在服务器上得到了大量的图像,而旧的图像甚至可能不会经常被使用(例如:超过一年的文章)。另外,开发这种方式需要更长的时间

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

    您是对的,动态调整图像的大小确实会消耗CPU(特别是当涉及大型图像时),因此缓存是必须的。您可以将映像缓存在服务器上,也可以将CDN放在上面。
    为了保持服务器整洁,我通常会运行一个cron作业来删除一周前的即时图像。节省空间+不会造成伤害-每当需要显示图像时,都会重新创建图像。

    请查看timthumb,它是一个动态调整图像大小并将其存储在缓存中的脚本。这是一个简单的方法,在URL中包含带有参数的图像标记


    同时检查这个看起来很有希望的链接

    这正是我为什么更喜欢“动态”方法的原因,所以现在请告诉我做这件事的最佳方法是什么,如何做,使用哪个库,如何使用它,等等。你可以玩这个:。但是,我发现它是一个相当繁重的库,可能会导致一些处理开销。我不知道是否有专门针对CodeIgniter的公开的EFLY库,我也写了自己的。如果你想看的话,给我留言。否则,您可以查找本机PHP的库,而不是专门针对CI的库;它们应该很容易集成。我链接了一个专门用于CI Belowhmm的库,现在我实现了这个解决方案。正如我所说,我使用的是杂货店的积垢,所以我在上传后使用Image\u moo library$this->Image\u moo->load($file\u upload)->set\u jpeg\u quality(90)->resize(350210)->save($new1,true)->resize(280168)->save($new2,true)->resize(196118)->save($new3,true)->resize(120,72)->save($new4,true)->调整大小(100,60)->保存($new5,true);您对图像库有什么看法?有没有更好的库?jpeg图像还可以,但png图像的大小并没有真正减小。另外,此解决方案是