Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 Imagemagick执行和转换_Php_Image Processing_Imagemagick - Fatal编程技术网

Php Imagemagick执行和转换

Php Imagemagick执行和转换,php,image-processing,imagemagick,Php,Image Processing,Imagemagick,我最近开始将imagemagick与php和 我对这两个方面都比较陌生,IM和PHP。 因此,我来这里寻求一些帮助/建议 弗斯特 如果让我们假设用户上传一个gif或png图像到 我的网站,我想把它转换成jpg,有吗 命令,例如。$image->convert($file,'.jpg) 或者只能通过exec()访问convert命令? 例如exec(将picture.png转换为picture.jpg) 第二 如果用户再次在站点上上传gif/png呢 我将图像调整为指定的宽度/高度,然后 使用IM

我最近开始将imagemagick与php和 我对这两个方面都比较陌生,IM和PHP。 因此,我来这里寻求一些帮助/建议

弗斯特 如果让我们假设用户上传一个gif或png图像到 我的网站,我想把它转换成jpg,有吗 命令,例如。
$image->convert($file,'.jpg)
或者只能通过
exec()
访问convert命令? 例如
exec(将picture.png
转换为picture.jpg)

第二 如果用户再次在站点上上传gif/png呢 我将图像调整为指定的宽度/高度,然后 使用IM的writeImage功能编写图像,如下所示:
$image->writeImage(basename.$ext)
其中
$ext
=jpg。 这能正常工作吗?这是一个好的做法吗?我想会的 只需重新命名,但仍然,我不认为这有什么问题。。。o、 o

哦,对不起,还有一个问题,我对exec不太熟悉, 使用
exec()
使用imagemagick是否更好,是否有所改进
速度、负载等?

我无法直接回答您的问题,但我想向您介绍一些资源:

关于exec和PHP扩展哪个更好,几个月前我问过同样的问题:

对于所有Image Magick PHP函数,您应查阅官方指南:

我从Image Magick切换到Graphics Magick,因为我听说它的性能更好。这是一种注重性能的图像魔术。像Flickr和Etsy这样的大型网站使用它:

这本指南让我开始:

他们在php.net上有自己的手册:

(大多数命令与Image Magick的命令相同)

我更喜欢使用exec(),因为它比Imagick(您发布的示例代码)支持得更好,更易于使用,并且支持Imagick没有的所有运算符(取决于您的版本)。 一些Imagick代码在不同版本中的工作方式不同;与几年前我第一次开始研究它时相比,这里有更多的Imagick示例

说Imagick可以更快,而且是/可以是?内置在php中,尽管有些人在安装时遇到困难

我相信这个网站属于一个Imagick开发者,并且有很多例子

我的网站www.rubblewebs.co.uk/imagemagick有很多php和exec()的例子

至于你的另外两个问题,是的,你可以用Imagick更改文件类型,我不确定basename。$ext-为什么不试试?只要basename没有扩展名,它就可以工作,但您可能需要在引号中包含basename.$ext


至于速度,GD有时比Imagick或Imagemagick快。你总是可以做一些测试。大约一年前我做了一些,你可以在你的服务器上尝试代码

exec()。就像所有你需要注意的用户输入一样。你好,邦佐。谢谢你的回复。我很感激。感谢提供的链接。我想我以前在做一些关于即时通讯的研究时访问过你们的网站。无论如何,关于文件类型更改,您建议的替代方案是什么?设置图像类型?还是其他类似的?