我最近开始使用带有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()
使用imagemagick更好,它是否有所改进
速度,负载等?
答案 0 :(得分:4)
我无法直接回答您的问题,但我认为我会向您介绍一些资源:
关于哪个更好,exec或PHP扩展,几个月前我问了同样的问题:
对于所有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