将WP_Image_Editor中的流图像映射到浏览器。

原型

wp_stream_image( WP_Image_Editor $image, string $mime_type, int $attachment_id )

参数

$image (WP_Image_Editor) (Required) 图像编辑器实例。

$mime_type (string) (Required) 图像的mime类型。

$attachment_id (int) (Required) 图像的附件发布ID。

返回值

(bool)  成功时是真的,失败时是假的。

源文件

路径:wp-admin/includes/image-edit.php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
...
function wp_stream_image( $image, $mime_type, $attachment_id ) {
	if ( $image instanceof WP_Image_Editor ) {

		/**
		 * Filters the WP_Image_Editor instance for the image to be streamed to the browser.
		 *
		 * @since 3.5.0
		 *
		 * @param WP_Image_Editor $image         The image editor instance.
		 * @param int             $attachment_id The attachment post ID.
		 */
		$image = apply_filters( 'image_editor_save_pre', $image, $attachment_id );

		if ( is_wp_error( $image->stream( $mime_type ) ) )
			return false;

		return true;
	} else {
		_deprecated_argument( __FUNCTION__, '3.5.0', __( '$image needs to be an WP_Image_Editor object' ) );

		/**
		 * Filters the GD image resource to be streamed to the browser.
		 *
		 * @since 2.9.0
		 * @deprecated 3.5.0 Use image_editor_save_pre instead.
		 *
		 * @param resource $image         Image resource to be streamed.
		 * @param int      $attachment_id The attachment post ID.
		 */
		$image = apply_filters( 'image_save_pre', $image, $attachment_id );

		switch ( $mime_type ) {
			case 'image/jpeg':
				header( 'Content-Type: image/jpeg' );
				return imagejpeg( $image, null, 90 );
			case 'image/png':
				header( 'Content-Type: image/png' );
				return imagepng( $image );
			case 'image/gif':
				header( 'Content-Type: image/gif' );
				return imagegif( $image );
			default:
				return false;
		}
	}
}

...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wp_stream_image/