Imagemagick执行和转换

时间:2012-05-12 21:19:18

标签: php image-processing imagemagick

我最近开始使用带有php和的imagemagick 我和IM和PHP都相对较新。 所以,我在这里要求一些帮助/建议。

第一

如果让我们说用户上传了gif或png图像 我的网站,我希望它转换为jpg,有没有 例如命令。$image->convert($file,'.jpg) 或转换命令只能通过exec()访问? 例如exec(convert picture.png到picture.jpg)

第二

如果再一次,用户在网站上传gif / png怎么办? 然后我将图像调整到指定的宽度/高度 使用IM的writeImage函数编写图像,如下所示: $image->writeImage(basename.$ext)其中$ext = jpg。 这项工作是否正常,这是一个好习惯吗?我认为这会 只重命名但仍然,我没有看到这个问题... o.O

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

2 个答案:

答案 0 :(得分:4)

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

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

Should I use a PHP extension for ImageMagick or just use PHP's Exec() function to run the terminal commands?

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

http://www.php.net/manual/en/book.imagick.php

我从Image Magick切换到Graphics Magick,因为我听说它有更好的性能。它是Image Magick的一个分支,强调性能。像Flickr和Etsy这样的大型网站使用它:

http://www.graphicsmagick.org/

本指南让我开始:

http://devzone.zend.com/1559/manipulating-images-with-php-and-graphicsmagick/

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

http://php.net/manual/en/book.gmagick.php(大部分命令与Image Magick相同)

答案 1 :(得分:1)

我更喜欢使用exec(),因为它比Imagick(你发布的示例代码)支持得更好,更易于使用并支持所有操作符(取决于你的版本),而Imagick没有。 一些Imagick代码在不同版本中的工作方式不同;有几个Imagick的例子比几年前我刚开始看它时要多得多。

说Imagick可以更快,是/可以?虽然有些人在安装它时遇到了麻烦,但内置于php中。

我相信这个网站http://valokuva.org/?cat=1属于Imagick开发者,并且有很多例子。

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

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

至于加速它有时候GD更快,其他时候Imagick或Imagemagick。你总是可以做一些测试。大约一年前我做了一些,你可以在服务器上试用代码。 http://www.rubblewebs.co.uk/imagemagick/speed/Speed_tests_1.pdf