wp_crop_image( string|int $src, int $src_x, int $src_y, int $src_w, int $src_h, int $dst_w, int $dst_h, bool|false $src_abs = false, string|false $dst_file = false )
Crops an image to a given size.
Parameters
- $src
 -  
(string|int) (Required) The source file or Attachment ID.
 - $src_x
 -  
(int) (Required) The start x position to crop from.
 - $src_y
 -  
(int) (Required) The start y position to crop from.
 - $src_w
 -  
(int) (Required) The width to crop.
 - $src_h
 -  
(int) (Required) The height to crop.
 - $dst_w
 -  
(int) (Required) The destination width.
 - $dst_h
 -  
(int) (Required) The destination height.
 - $src_abs
 -  
(bool|false) (Optional) If the source crop points are absolute.
Default value: false
 - $dst_file
 -  
(string|false) (Optional) The destination file to write to.
Default value: false
 
Return
(string|WP_Error) New filepath on success, WP_Error on failure.
Source
File: wp-admin/includes/image.php
function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) {
	$src_file = $src;
	if ( is_numeric( $src ) ) { // Handle int as attachment ID.
		$src_file = get_attached_file( $src );
		if ( ! file_exists( $src_file ) ) {
			// If the file doesn't exist, attempt a URL fopen on the src link.
			// This can occur with certain file replication plugins.
			$src = _load_image_to_edit_path( $src, 'full' );
		} else {
			$src = $src_file;
		}
	}
	$editor = wp_get_image_editor( $src );
	if ( is_wp_error( $editor ) ) {
		return $editor;
	}
	$src = $editor->crop( $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs );
	if ( is_wp_error( $src ) ) {
		return $src;
	}
	if ( ! $dst_file ) {
		$dst_file = str_replace( wp_basename( $src_file ), 'cropped-' . wp_basename( $src_file ), $src_file );
	}
	/*
	 * The directory containing the original file may no longer exist when
	 * using a replication plugin.
	 */
	wp_mkdir_p( dirname( $dst_file ) );
	$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), wp_basename( $dst_file ) );
	$result = $editor->save( $dst_file );
	if ( is_wp_error( $result ) ) {
		return $result;
	}
	return $dst_file;
}  Changelog
| Version | Description | 
|---|---|
| 2.1.0 | Introduced. | 
    © 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
    https://developer.wordpress.org/reference/functions/wp_crop_image