【问题标题】:Convert ImageMagick Command To PHP equivalent将 ImageMagick 命令转换为 PHP 等效命令
【发布时间】:2017-08-04 08:25:53
【问题描述】:

我希望在 PHP 中使用以下 ImageMagick SSH 命令:

convert image_name.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace RGB image_name.jpg

所以php ImageMagick 版本使用:

$image = new Imagick('test.jpg');
$image->Functionhere()

【问题讨论】:

  • 什么是“PHP 等价物”? php 与 exec() 或 Imagick ( php/Imagemagick API )。
  • 您是否可以分享任何 代码 尝试?

标签: php ssh imagemagick


【解决方案1】:

你可以用反引号包裹bash命令来调用它,你也可以使用php的exec

`convert image_name.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace RGB image_name.jpg`

【讨论】:

    【解决方案2】:

    我想第一件事是检查您是否可以访问 imagick:

    $version = Imagick::getVersion(); 
    echo 'API version number: '.$version['versionNumber'].'<br />'; 
    echo 'API version string: '.$version['versionString'].'<br />'; 
    

    我不喜欢 Imagick,因为没有对它的支持。它不支持 Imagemagick 的所有选项。它是一个类,我从来不需要学习如何使用一个类,所以它比 exec() 更复杂。

    很多人说 Imagick 比 Imagemagick 更安全。但只要您对用户数据采取预防措施,我会认为 exec() 几乎同样安全。

    exec( "convert image_name.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace RGB image_name.jpg" );
    

    【讨论】:

      【解决方案3】:

      正确答案是:

      $im = new Imagick( $old_file );
      $im->setImageCompression( Imagick::COMPRESSION_JPEG );
      $im->stripImage();
      $im->setSamplingFactors(array('2x2', '1x1', '1x1'));
      $im->setCompressionQuality('85');
      

      【讨论】:

      • 这可能是“正确”的答案,但我问你是否想使用 Imagick 或 Imagemagick。
      猜你喜欢
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 2012-07-14
      • 2018-04-09
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多