-function wp_save_image_file($filename, $image, $mime_type, $post_id) {
- $image = apply_filters('image_save_pre', $image, $post_id);
- $saved = apply_filters('wp_save_image_file', null, $filename, $image, $mime_type, $post_id);
- if ( null !== $saved )
- return $saved;
-
- switch ( $mime_type ) {
- case 'image/jpeg':
- return imagejpeg( $image, $filename, apply_filters( 'jpeg_quality', 90, 'edit_image' ) );
- case 'image/png':
- return imagepng($image, $filename);
- case 'image/gif':
- return imagegif($image, $filename);
- default:
- return false;
+/**
+ * Saves Image to File
+ *
+ * @param string $filename
+ * @param WP_Image_Editor $image
+ * @param string $mime_type
+ * @param int $post_id
+ * @return boolean
+ */
+function wp_save_image_file( $filename, $image, $mime_type, $post_id ) {
+ if ( $image instanceof WP_Image_Editor ) {
+
+ /** This filter is documented in wp-admin/includes/image-edit.php */
+ $image = apply_filters( 'image_editor_save_pre', $image, $post_id );
+
+ /**
+ * Filter whether to skip saving the image file.
+ *
+ * Returning a non-null value will short-circuit the save method,
+ * returning that value instead.
+ *
+ * @since 3.5.0
+ *
+ * @param mixed $override Value to return instead of saving. Default null.
+ * @param string $filename Name of the file to be saved.
+ * @param WP_Image_Editor $image WP_Image_Editor instance.
+ * @param string $mime_type Image mime type.
+ * @param int $post_id Post ID.
+ */
+ $saved = apply_filters( 'wp_save_image_editor_file', null, $filename, $image, $mime_type, $post_id );
+
+ if ( null !== $saved )
+ return $saved;
+
+ return $image->save( $filename, $mime_type );
+ } else {
+ _deprecated_argument( __FUNCTION__, '3.5', __( '$image needs to be an WP_Image_Editor object' ) );
+
+ /** This filter is documented in wp-admin/includes/image-edit.php */
+ $image = apply_filters( 'image_save_pre', $image, $post_id );
+
+ /**
+ * Filter whether to skip saving the image file.
+ *
+ * Returning a non-null value will short-circuit the save method,
+ * returning that value instead.
+ *
+ * @since 2.9.0
+ * @deprecated 3.5.0 Use wp_save_image_editor_file instead.
+ *
+ * @param mixed $override Value to return instead of saving. Default null.
+ * @param string $filename Name of the file to be saved.
+ * @param WP_Image_Editor $image WP_Image_Editor instance.
+ * @param string $mime_type Image mime type.
+ * @param int $post_id Post ID.
+ */
+ $saved = apply_filters( 'wp_save_image_file', null, $filename, $image, $mime_type, $post_id );
+
+ if ( null !== $saved )
+ return $saved;
+
+ switch ( $mime_type ) {
+ case 'image/jpeg':
+
+ /** This filter is documented in wp-includes/class-wp-image-editor.php */
+ return imagejpeg( $image, $filename, apply_filters( 'jpeg_quality', 90, 'edit_image' ) );
+ case 'image/png':
+ return imagepng( $image, $filename );
+ case 'image/gif':
+ return imagegif( $image, $filename );
+ default:
+ return false;
+ }