3

我最近开始将 imagemagick 与 php 一起使用,而我对 IM 和 PHP 都比较陌生。所以,我在这里寻求一些帮助/建议。

第一的

如果假设用户在我的网站上上传了 gif 或 png 图像,并且我希望将其转换为 jpg,那么是否有任何类似的命令。$image->convert($file,'.jpg) 或者转换命令只能通过exec()?例如exec(convert picture.png图片.jpg)

第二

如果再一次,用户在网站上上传 gif/png,我将图像调整为指定的宽度/高度并写入图像,使用 IM 的 writeImage 函数如下: $image->writeImage(basename.$ext)where $ext= jpg。这会正常工作吗,这是一个好习惯吗?我认为这只会重命名它,但我仍然认为这没有问题...... oO

哦,对不起,还有一个问题,我对 exec 不是很熟悉,使用 imagemagick using 是否更好exec(),它是否提高了速度、负载等?

4

2 回答 2

4

我无法直接回答您的问题,但我认为我为您指出了一些资源:

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

我应该为 ImageMagick 使用 PHP 扩展还是只使用 PHP 的 Exec() 函数来运行终端命令?

对于所有 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 的相同)

于 2012-05-12T21:45:15.067 回答
1

我更喜欢使用 exec() ,因为它比 Imagick (您发布的示例代码)更受支持,更易于使用并支持所有运算符(取决于您的版本),而 Imagick 又不支持。一些 Imagick 代码在不同版本中的工作方式不同;与几年前我第一次看到它时相比,Imagick 的例子要多得多。

说 Imagick 可以更快并且是/可以是?内置在 php 中,尽管有些人在安装它时遇到了麻烦。

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

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

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

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

于 2012-05-12T21:58:40.997 回答