从顶部裁剪,而不是从中心裁剪

时间:2015-04-13 14:41:29

标签: php image crop photo

我有一个脚本从中心裁剪图像,有没有办法让它从图像的顶部裁剪?我试着这样做,但我搞砸了代码。

以下是裁剪的脚本:

if($crop){
    $new_image = imagecreatetruecolor($width, $height);

    if($current_ratio > $desired_ratio_after){
        $new_width = $old_width * $height / $old_height;
    }

    if($current_ratio > $desired_ratio_before && $current_ratio < $desired_ratio_after){
        if( $old_width > $old_height ){
            $new_height = max( $width, $height );
            $new_width = $old_width * $new_height / $old_height;
        }
        else{
            $new_height = $old_height * $width / $old_width;
        }
    }

    if($current_ratio < $desired_ratio_before){
        $new_height = $old_height * $width / $old_width;
    }

    $width_ratio = $old_width / $new_width;
    $height_ratio = $old_height / $new_height;

    $src_x = floor( ( ( $new_width - $width ) / 2 ) * $width_ratio );
    $src_y = round( ( ( $new_height - $height ) / 2 ) * $height_ratio );
}

1 个答案:

答案 0 :(得分:0)

我假设你不想从顶部裁剪(这意味着要移除顶部),但要裁剪以使顶部停留?然后我很确定设置$src_y = 0意味着取得顶峰。

如果你想从顶部裁剪,意味着只留下底部,那么$src_y = $old_height - $new_height可能就可以了。

所有这一切假设$src_y是原始图像中的起始Y坐标。