Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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_Javascript_Performance_Image Processing_Web Worker - Fatal编程技术网

PHP/浏览器性能:通过浏览器生成缩略图

PHP/浏览器性能:通过浏览器生成缩略图,php,javascript,performance,image-processing,web-worker,Php,Javascript,Performance,Image Processing,Web Worker,用户将大分辨率图像上载到服务器。需要为此图像创建缩略图。我考虑过用PHP创建缩略图,而不是使用GD密集型操作,这个过程真的可以卸载到客户端/浏览器吗?现在的现代浏览器支持快速缩小图像,但我确信做这样的工作有很多利弊,所以我的问题是 这将是一种更有效的方法,但与服务器端的GD操作相比,效率要高多少 是否有Javascript库可以以JPG格式快速保存图像,以便通过Ajax将图像发送到服务器 一般来说,转换将使用Web Workers进行,因此不会影响用户的浏览器 显然,用户可以随时利用并发送与全尺

用户将大分辨率图像上载到服务器。需要为此图像创建缩略图。我考虑过用PHP创建缩略图,而不是使用GD密集型操作,这个过程真的可以卸载到客户端/浏览器吗?现在的现代浏览器支持快速缩小图像,但我确信做这样的工作有很多利弊,所以我的问题是

  • 这将是一种更有效的方法,但与服务器端的GD操作相比,效率要高多少
  • 是否有Javascript库可以以JPG格式快速保存图像,以便通过Ajax将图像发送到服务器
  • 一般来说,转换将使用Web Workers进行,因此不会影响用户的浏览器
  • 显然,用户可以随时利用并发送与全尺寸图像完全无关的缩略图。有没有什么好办法可以解决这个问题,即快速计算缩略图和全尺寸图像的相似程度,如果它们是98%相似,则允许使用图像

  • 我知道可能有更好的方法,比如完全卸载到另一台服务器,或者在凌晨3点进行批处理,但出于学术/信息目的,随着现代浏览器及其改进的Javascript引擎的出现,在客户端浏览器上可以像这样工作吗?

    相似性计算可能不会比简单地创建一个快速缩小规模更快,尽管我没有代码可以立即证明这一点

    带宽是一个可能的问题,来回发送文件


    一个可能的想法是使用Flash/Java小程序来处理上传,自动生成缩略图并将其发送出去。

    你是否会被每秒如此多的上传所困扰,以至于你不得不将加载分配回浏览器

    可以很容易地处理,如果真的需要这么多的话,可以将其线程化或卸载到单独的机器上


    在尝试优化网络传输开销中可能丢失的东西之前,您应该对此进行负载测试。

    我认为您弄乱了客户端/服务器端。Javascript无法生成缩略图。如果您想将浏览器委托给缩放,只需设置图像的宽度/高度

    我一直在做的就是在那些有EXIF缩略图的图像上抓取它,并且只为那些不包含EXIF数据的图像创建真正的缩略图

    没有完全回答你的问题,但这是我的2美分:-)


    编辑:我仍然通过CRON作业将所有图像排队,以便稍后进行完整处理,因为它们的大小已调整为多种大小->这只是我最初关心的即时拇指尾。

    感谢您的所有评论,但我找到了一个很好的解决方案:


    我会做一些进一步的测试来确定它的可行性

    显然,这里的主要问题是:

    • a.我并不认为每个人都在使用相同的浏览器,并且具有相同的canvas/html5功能,所以应该有一个后备系统。

    • b.用户有不同的执行浏览器/机器。因此,在处理大图像以缩小到缩略图大小时,必须记住这一点

    • c.如果任何垃圾数据/漏洞是从浏览器/客户端发送的,那么我将在这方面解决(事实是,不管怎样,人们可以上传全尺寸图像的垃圾数据,,而且如果用户的初衷是要破坏网站,他们总会找到一种方法


    我将进行一些测试以查看性能改进,并在这里报告。

    虽然它处理得很好,但使用300DPI图像时速度非常慢。5个图像需要30-60秒才能生成缩略图,这在观众等待查看结果时是不好的。您使用的image magick版本是什么?他们最近做了一些性能改进。另外,GraphicsMagick比我上次检查时的ImageMagick快了很多,但没有功能丰富。6.6.3-6(从2010年开始)。没有听说过GraphicsMagick。我们做了很多PDF和EPS到位图的转换,所以如果速度更快,那就太好了,因为我们不需要处理大量的图像类型-只需要向量和高分辨率位图。GraphicsMagick非常震撼-它在不到2秒钟的时间内将166MB的tiff转换为JPG!谢谢你给我指点。这正是我想要的我想。我已经研究了一些图像比较算法,不得不说,它们看起来很重。仅仅调整大小可能比完全计算要快。所以我不得不放弃计算,希望用户不是故意发送垃圾数据。用户可以完全发送垃圾图像,而不必考虑缩略图。如果你要相信其中一个,除了信任另一个,你可能别无选择。