【问题标题】:Imagemagick exec and convertImagemagick 执行和转换
【发布时间】:2012-12-03 06:15:23
【问题描述】:

我最近开始使用带有 php 的 imagemagick 和 我对这两个,IM 和 PHP 都比较陌生。 所以,我在这里寻求一些帮助/建议。

首先

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

第二

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

抱歉,还有一个问题,我对 exec 不是很熟悉, 使用 exec() 使用 imagemagick 会更好吗? 速度、负载等?

【问题讨论】:

  • exec()exploitable PHP function,因此您会发现它在大多数服务器上都被禁用。
  • 我没有看到它在“大多数服务器”上被禁用。与您需要注意用户输入的所有事情一样。

标签: php image-processing imagemagick


【解决方案1】:

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

关于哪个更好,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的相同)

【讨论】:

    【解决方案2】:

    我更喜欢使用 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

    【讨论】:

    • 你好,邦佐。感谢你的回复。我很感激。感谢您提供的链接。我想我之前在做一些关于 IM 的研究时访问过你的网站。无论如何,关于文件类型的更改,您提出的替代方案是什么?设置图像类型?或其他类似的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多