CCCPaste

crop image on top center


add_filter(
	'image_resize_dimensions',
	function ( $payload, $orig_w, $orig_h, $dest_w, $dest_h, $crop ) {
		if ( ! $crop || $dest_w <= 0 || $dest_h <= 0 ) {
			return $payload;
		}
		$dest_ratio = $dest_w / $dest_h;
		$orig_ratio = $orig_w / $orig_h;
		if ( $orig_ratio > $dest_ratio ) {
			$src_h = $orig_h;
			$src_w = (int) round( $dest_ratio * $src_h );
			$src_x = (int) floor( ( $orig_w - $src_w ) / 2 );
			$src_y = 0;
		} else {
			$src_w = $orig_w;
			$src_h = (int) round( $src_w / $dest_ratio );
			$src_x = (int) floor( ( $orig_w - $src_w ) / 2 );
			$src_y = 0;
		}
		$dst_x = 0;
		$dst_y = 0;
		return array( $dst_x, $dst_y, $src_x, $src_y, $dest_w, $dest_h, $src_w, $src_h );
	},
	10,
	6
);