代码之家  ›  专栏  ›  技术社区  ›  Rinsad Ahmed

IMagic设置后不会反映重力

  •  0
  • Rinsad Ahmed  · 技术社区  · 6 年前

    我正在尝试翻译以下ImageMagick命令行代码

     convert tmpI.mpc -gravity center -crop ${ww}x${hc}+0+0 +repage
    

    如下

    $tmpIC->setGravity(imagick::GRAVITY_CENTER);
    $tmpIC->cropImage($ww, $hc, 0, 0);
    $tmpIC->setImagePage($tmpIC->getImageWidth(), $tmpIC->getImageHeight(), 0, 0);
    

    但是设置或不设置重力没有区别。请告诉我我的代码有什么问题

    裁剪前图像的宽度和高度为

    tmpIC->getImageWidth() = 479
    tmpIC->getImageHeight() = 599
    

    ww和hc的值是

    ww=479
    hc=479
    

    裁剪后图像的宽度和高度如下

    tmpIC->getImageWidth() = 479
    tmpIC->getImageHeight() = 479
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Danack    6 年前

    不是所有的imagemagick命令都可以直接转换为imagick中相同的命名命令。

    在您的例子中,重力命令并不能很好地映射-但是将图像裁剪到中心的效果可以由您自己在一个cropimage函数调用中完成:

    $tmpIC->cropImage(
        $ww,
        $hc,
        $startX = ($tmpIC->getImageWidth() - $ww) / 2,
        $startY = ($tmpIC->getImageHeight() - $hc) / 2
    );