我一直在想最好的解决方案,当我读到的时候,我越来越困惑。有很多不同的库和助手(大多数已经过时了,或者是CI 1.x),我真的需要你的帮助。
我有一个基于CodeIgniter 2.1.3的自定义CMS,这个新闻网站在主页上有大约40-50张图片,但其中80%是3种大小的小缩略图,而主页上的其他20%的图片是2大号+当我列出一个类别的新闻时,缩略图只有一个大小。因此,总的来说,我将需要原始图片的新闻报道,+ 5-6缩略图大小的首页。
处理这件事最聪明的方法是什么?假设每天有10到50条新新闻。
我应该使用哪些缓存技术来满足我的需求?
另外,我忘了问,其他CMS系统是如何生成缩略图的?我是说Wordpress,Drupal,Joomla等等。
它们是存储预定义的尺寸还是动态生成它们?
我想他们的逻辑应该是最好的,也许不是,但是我想在我的CodeIgniter CMS中实现一些智能的东西。
我没有提到,但我认为这并不重要,我使用Grocery作为管理面板。
任何帮助都是非常感谢的。
发布于 2012-11-10 13:40:44
最好的方法是动态创建图像+像一样使用CDN来缓存源映像的调整大小版本。
多年来,我一直在使用CodeIgniter来构建网站,在这些网站中,很多不同大小的图像都被使用在整个网站上。在开始的时候,我经常在上传过程中从原始图像中创建每一个需要的大小(很容易得到超过5个缩略图)。事实证明,这提供了最好的性能-当您需要一个特定大小的图像时,您只需包含它,而不需要额外的PHP处理。然而,我注意到,我最终在服务器上得到了大量的图像,而旧的图像甚至可能没有那么频繁地使用(例如:超过一年的文章)。另外,发展这种方式需要更长的时间。
然后我开始动态创建图像,首先使用第三方库,然后为CodeIgniter开发自己的界面。这节省了很多时间,因为在上传过程中,您保存了图像的原始版本,而不必担心大小调整的版本。在前端显示图像时,通常所需做的就是传递所需图像的某些尺寸。这样做,你不仅可以得到5-6版本的图像,但许多你需要。这也是未来的解决方案,当你重新设计你的网站时,可能需要不同大小的图片!当你的5个缩略图选项都不再有效,而且你需要不同的尺寸时,你会怎么做?
您是对的,动态调整图像大小确实会消耗CPU操作(特别是当涉及到大型映像时),因此缓存是必须的。您可以直接在服务器上缓存图像,也可以在服务器上获取CDN。为了保持服务器的整洁,我通常运行一项cron任务来删除比我们假设的一周更老的在线图像。这节省了空间+不会造成伤害-每当需要显示图像时,它就会被重新创建。
发布于 2012-11-10 20:36:14
查看Tim姆指,它是一个脚本,可以动态调整图像大小,并将它们存储在缓存中。这是一个简单的方法,包括包含URL中参数的图像标记。
ALso检查这个看起来很有前途的http://www.jenssegers.be/blog/31/Codeigniter-resizing-and-cropping-images-on-the-fly-continued链接
发布于 2012-11-10 12:25:01
我喜欢Drupal处理这个的方式。在Drupal 6中有一个名为imagecache的模块(现在是Drupal 7的核心,但功能非常相似),它基本上存储图像的预置(图像大小、转换、效果.)当访问者要求获得图像时,该模块根据预置生成不同的图像,并提供这些图像。通过这种方式,您可以上传一个图像,但是有不同的图像用于不同的目的。
该模块有一个非常有用的特性,如果您想要更改一个预设,您可以“刷新”与该预设相关的所有图像,这样访问者就可以看到更改。
当然,Drupal中还有许多与图像缓存或图像样式相关的模块,这些模块添加了其他效果,比如水印.
更多信息:
https://stackoverflow.com/questions/13320975
复制相似问题