-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 ) {
+ $image = apply_filters('image_editor_save_pre', $image, $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' ) );
+
+ $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;
+ }