Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php图像动态调整与全尺寸图像_Php_Image_Resize - Fatal编程技术网

php图像动态调整与全尺寸图像

php图像动态调整与全尺寸图像,php,image,resize,Php,Image,Resize,我正在建立一个图像库,在frontpage中显示一些图像。这些图像大于frontpage中显示的实际大小,这导致我提出以下问题: 如果缓存不是一个选项,那么什么更好: 使用php收缩图像并将其发送到客户端 发送原始的全尺寸图像,让客户端缩小它(使用简单的宽度和高度属性) 我倾向于认为第二种是更好的解决方案,但我想听听更多的意见 谢谢 编辑: 当人们上传图片时,我会为他们创建缩略图,以便在浏览网站时显示 “缓存不是选项”原因: 讨论的图像是frontpage中的5个“特色”图像,最多不会保持一个小

我正在建立一个图像库,在frontpage中显示一些图像。这些图像大于frontpage中显示的实际大小,这导致我提出以下问题:

如果缓存不是一个选项,那么什么更好:

  • 使用php收缩图像并将其发送到客户端

  • 发送原始的全尺寸图像,让客户端缩小它(使用简单的
    宽度
    高度
    属性)

  • 我倾向于认为第二种是更好的解决方案,但我想听听更多的意见

    谢谢

    编辑:

    当人们上传图片时,我会为他们创建缩略图,以便在浏览网站时显示

    “缓存不是选项”原因:


    讨论的图像是frontpage中的5个“特色”图像,最多不会保持一个小时以上。因此,为每个上传的图像创建另一个图像副本不是浪费吗?

    基本上,这取决于

    • 原始与所需的宽/高比是多少?为500x500图像提供服务并将其显示为250x250并不是什么大不了的事,但在1920x1080图像上浪费带宽是很重要的。此外,如果您提供太多的大图像,移动设备可能没有足够的可用资源来实际显示网页
    • 你有更多的:带宽还是CPU能力?你能确保没有人使用你的动态调整器作为DOS目标吗
    不过,通常使用缓存的解决方案(即使是非常临时的)要好得多

    [广告编辑]

    讨论的图像是frontpage中的5个“特色”图像,其中 最多不会保持一个小时以上。那么这不是一种浪费吗 为每个上传的图像创建另一个图像副本

    是的。但您可以简单地为这些缩略图创建一个单独的文件夹,并设置一个cron作业来擦除超过一小时的文件。以下是我在网站上使用的示例(设置为30分钟):


    */15****查找/var/www/directory/-mmin+30-exec-rm-f{}\>/dev/null 2>&1

    如果有足够的CPU资源,我希望在发送图像之前先缩小图像,以便对连接不好的人和移动设备进行轻松处理


    另一个选择和我的首选策略是保留较小版本的图像,然后使用它们。如果图像是在某个点上传的,那么在上传时创建一个较小的图像版本。

    3怎么样。在为客户服务的过程中,不要调整图像的大小——让一个后台过程进行调整,如果调整了大小,发送缩略图,如果还没有调整,则发送完整的图像。这样做的好处是,您可以独立于用户请求来限制调整大小的过程。

    这有点取决于您的流量,但我会动态调整大小并节省时间。因此,如果拇指存在,则为其服务,如果不存在,则动态调整大小并为其服务(同时保存拇指)


    然后在cronjob中,您可以删除旧图像。

    请参阅原始帖子(已编辑)please@tamir:那要看情况-例如,你预计一小时内会有多少流量?不,这绝对不是浪费。只要在第一次访问图像时调整其大小并将其缓存即可。从长远来看,您将节省资源。将图像缓存一次并不像不断读取图像并调整其大小那样占用大量资源。一小时后,只需擦除五个缓存的图像。