wp_crop_image() WordPress Function
The wp_crop_image() function allows you to crop an image in WordPress. This is useful if you want to crop an image to a specific size, or if you want to crop an image to a specific aspect ratio.
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; } if ( ! empty( $result['path'] ) ) { return $result['path']; } return $dst_file; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
2.1.0 | Introduced. |