Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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中不使用GD的imagerotate进行图像旋转的最快方法是什么?_Php_Image_Gd - Fatal编程技术网

在PHP中不使用GD的imagerotate进行图像旋转的最快方法是什么?

在PHP中不使用GD的imagerotate进行图像旋转的最快方法是什么?,php,image,gd,Php,Image,Gd,我没有能力使用PHP的GD imagerotate函数,所以我需要找到另一个解决方案。我使用了ImageRotatePHP帮助页面的rotateImage方法,但在大型图像上速度非常慢 我对图像数学很糟糕,我很难制定正确的谷歌搜索,让我指向正确的方向,让我的图像旋转得更快 理想情况下,如果我能从PHP中找到速度接近相同的解决方案,我希望避免调用外部应用程序 我没有安装ImageMagick,希望在安装ImageMagick之前可以试用非ImageMagick 更新 有人问我为什么有这么多限制 我

我没有能力使用PHP的GD imagerotate函数,所以我需要找到另一个解决方案。我使用了ImageRotatePHP帮助页面的rotateImage方法,但在大型图像上速度非常慢

我对图像数学很糟糕,我很难制定正确的谷歌搜索,让我指向正确的方向,让我的图像旋转得更快

理想情况下,如果我能从PHP中找到速度接近相同的解决方案,我希望避免调用外部应用程序

我没有安装ImageMagick,希望在安装ImageMagick之前可以试用非ImageMagick

更新

有人问我为什么有这么多限制

我最初认为我可以直接使用imagerotate,但我发现只有使用PHP版本的GD构建PHP时,它才起作用。有些发行版至少是Ubuntu,我用它作为我的开发环境。在这些情况下,尝试调用imagerotate会导致:

PHP致命错误:调用未定义的函数:imagerotate

我发现了一个PHP解决方案,可以在不使用imagerotate函数的情况下使用GD进行图像旋转,但速度似乎很慢。对于2848x2136图像,15-20秒

我希望找到一种使用GD的更快的算法,但是会考虑使用IMAGE或其他外部库作为最后的手段。这并不是说我无法安装ImageMagick,而是我更愿意在向该项目添加更多依赖项之前,使用PHP内置函数找到一个更快的替代方案


关于exec:一般来说,我尽量避免交给exec。事实上,在过去的五年中,我记不起任何时候我必须这样做。我会考虑这样做,如果没有其他足够快的旋转,但我想检查一些其他的选择之前,我去那里。

< P>如果你真的不能使用GD库,你是否可以使用4个不同的图像为每一个,每一个图像旋转在90度?< /P> 每个图像可以保存4个文件-image_normal.jpg、image_90.jpg、image_180.jpg、image_270.jpg

然后,当用户想要旋转图像时,只需加载相应的文件即可

不是最伟大的黑客,但最好是一个解决方案


希望有帮助。

如果你真的不能使用GD库,你是否可以为每个库使用4个不同的图像,每个图像旋转90度

每个图像可以保存4个文件-image_normal.jpg、image_90.jpg、image_180.jpg、image_270.jpg

然后,当用户想要旋转图像时,只需加载相应的文件即可

不是最伟大的黑客,但最好是一个解决方案

希望能有所帮助。

似乎列出了一系列方法,但您必须自己编写代码。 似乎列出了一系列方法,但您必须自己编写代码。

您可以访问exec功能,但无法安装?怎么样


您知道可以在运行时使用dl库,对吗?

您可以访问exec函数,但无法安装?怎么样


您知道您可以在运行时使用dl库,对吗?

您似乎有很多限制。。。你能详细说明一下吗?也许这里还有更大的问题。@Fragsworth我想尝试阻止execconvert和ImageMagick答案的泛滥,因为我知道这些答案不是我想要的。当然,所有这些我都能做到。如果我能找到另一个不涉及另一个依赖关系的解决方案,我宁愿不这样做。+1,你可以要求Adam Conrad停止愚蠢,或者搬到更好的发行版,比如Cento。你似乎有很多限制。。。你能详细说明一下吗?也许这里还有更大的问题。@Fragsworth我想尝试阻止execconvert和ImageMagick答案的泛滥,因为我知道这些答案不是我想要的。当然,所有这些我都能做到。如果我能找到另一个不涉及另一种依赖性的解决方案,我宁愿不这样做。+1,你可以要求Adam Conrad停止愚蠢,或者搬到一个更好的发行版,比如CentOSI,他认为他在以速度进行旋转时遇到了问题,而不是真正进行旋转。是的,我知道,但是这种方法会很快,因为不需要计算或方法。你只需加载一个你无论如何都必须加载的图像。但他没有说他是否只会旋转90度。而且,他无论如何都需要在将图像保存到这四个文件之前实际旋转图像@格雷厄姆。里德斯和@FractalizeR是正确的。像Photoshop这样的应用程序无法提前完成图像旋转,尽管理论上你的想法是正确的。我认为他在以速度旋转时遇到了困难,而不是真正旋转。是的,我知道,但是这种方法
会很快,因为不需要计算或方法。你只需加载一个你无论如何都必须加载的图像。但他没有说他是否只会旋转90度。而且,他无论如何都需要在将图像保存到这四个文件之前实际旋转图像@格雷厄姆。里德斯和@FractalizeR是正确的。在Photoshop这样的应用程序中,图像旋转无法提前完成,尽管理论上你的想法是正确的。我没有说我不能安装ImageMagick,我只是想在求助于其他第三方应用程序或库(如ImageMagick)之前,尝试找到一个比我当前的GD解决方案更快的替代方案。。。如果你想提高速度,你需要求助于外部C/C++库或应用程序。我没有说我不能安装ImageMagick,我只是想在求助于其他第三方应用程序或库(如ImageMagick)之前,尝试找到一个比我当前的GD解决方案更快的替代方案。。。如果您想提高速度,需要借助外部C/C++库或应用程序。@graham.reeds谢谢您的帮助。我昨晚也发现了这个。当我写这个问题的时候,我曾希望有人会给我发一些PHP代码,至少是松散地基于这个来让我开始。我开始觉得我必须自己做这件事,这很可怕。像素和我有时相处得不太好…。@graham.reeds谢谢你。我昨晚也发现了这个。当我写这个问题的时候,我曾希望有人会给我发一些PHP代码,至少是松散地基于这个来让我开始。我开始觉得我必须自己做这件事,这很可怕。我和像素有时相处得不太好。。。