Php 按需从JPEG文件中提取裁剪的最快方法?

Php 按需从JPEG文件中提取裁剪的最快方法?,php,imagemagick,jpeg,crop,Php,Imagemagick,Jpeg,Crop,我的网站上的用户可以点击照片的一部分来获得特写 我现在有一点JavaScript,它对使用ImageMagick检索相关作物的PHP脚本进行AJAX调用 在PHP之外,我能做得更好吗?以某种方式直接使用ImageMagick,还是其他什么 目前,这些文件与主网站位于同一台服务器上,但由于空间限制,我正在将它们移动到另一台服务器上,因此需要在两者之间进行调用 照片大小不一,有的是1600x1200,只有200KB,有的是24MP+20MB+原件。使用ImageMagick,您有两种选择: 加载图像

我的网站上的用户可以点击照片的一部分来获得特写

我现在有一点JavaScript,它对使用ImageMagick检索相关作物的PHP脚本进行AJAX调用

在PHP之外,我能做得更好吗?以某种方式直接使用ImageMagick,还是其他什么

目前,这些文件与主网站位于同一台服务器上,但由于空间限制,我正在将它们移动到另一台服务器上,因此需要在两者之间进行调用


照片大小不一,有的是1600x1200,只有200KB,有的是24MP+20MB+原件。

使用ImageMagick,您有两种选择:

加载图像时裁剪图像。然后最初加载的是一个裁剪过的图像。 加载图像,然后裁剪它。最初加载的是完整的图像。 第一种方法效率更高,速度更快

此方法是将图像区域信息附加到方括号[…]中的输入图像,如下所示:

convert wizard:[130x150+80+80] -resize 200% wiz-head.png
这将从原始内置向导图像的左上角裁剪一块130x150像素的图像,偏移量为80像素。下面是两个并排的图像,向导:左侧和裁剪的部分,大小调整了200%:

如果要裁剪JPEG,可以使用以下内容:

   convert some.jpeg[330x250+180+280] -resize 300% output.png

总比强迫你的服务器做硬图像处理要好,让它转到客户端JS。检查canvas html5+js裁剪:向客户端发送20MB文件似乎不是一种很好的用户体验……我不确定,但如果用户可以单击照片的一部分,这意味着他是通过http请求获得的。这意味着,正如我所想,用户获取图片,选择裁剪选项,服务器获取该选项并裁剪它加载图片以处理它。因此,最好是强制客户端裁剪并上传完成的裁剪,而不是由服务器来完成。正如您所希望的,他们看到的最初照片是低分辨率、带宽友好的1024px版本,而不是完整的文件。谢谢。在PHP脚本中使用它的最佳方式是什么?我应该使用,还是可以像你的例子那样使用直接命令行访问IM来加快速度?@Codemonkey:对不起,这个问题我无法回答。如果我是你,我会用你的环境设计并运行一些基准测试,测试图像,然后决定。