Обрезать сверху, а не из центра

У меня есть сценарий, который обрезает изображение из центра, есть ли способ сделать его обрезать сверху изображения? Я пытался сделать это, но я просто испортил код.

Вот скрипт для обрезки:

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 );
}

0

Решение

Я предполагаю, что вы не хотите обрезать сверху (что означало бы удалить верх), но обрезать так, чтобы верх остался? Тогда я почти уверен по настройкам $src_y = 0 будет означать взять верх.

Если вы хотите обрезать сверху, то есть только оставить снизу, то, вероятно, $src_y = $old_height - $new_height сделал бы трюк.

Все это при условии $src_y является начальной координатой Y в исходном изображении.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector