wp_crop_image

函数
wp_crop_image ( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false )
参数
  • (string|int) $src The source file or Attachment ID.
    Required:
  • (int) $src_x The start x position to crop from.
    Required:
  • (int) $src_y The start y position to crop from.
    Required:
  • (int) $src_w The width to crop.
    Required:
  • (int) $src_h The height to crop.
    Required:
  • (int) $dst_w The destination width.
    Required:
  • (int) $dst_h The destination height.
    Required:
  • (bool|false) $src_abs Optional. If the source crop points are absolute.
    Required:
    Default: false
  • (string|false) $dst_file Optional. The destination file to write to.
    Required:
    Default: false
返回值
  • (string|WP_Error) New filepath on success, WP_Error on failure.
定义位置
相关方法
wp_ajax_crop_imagewp_load_imagewp_restore_imagewp_stream_image_copy_image_file
引入
2.1.0
弃用
-

wp_crop_image: 这是一个允许你将图片裁剪成特定尺寸的功能。如果你想显示一个图片的特定部分,或者你需要调整一个图片的大小以适应一个特定的空间,这可能很有用。

将图像裁剪成一个给定的尺寸。

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

常见问题

FAQs
查看更多 >