Index: wp-admin/includes/image-edit.php
===================================================================
--- wp-admin/includes/image-edit.php	(revision 26737)
+++ wp-admin/includes/image-edit.php	(working copy)
@@ -203,6 +203,14 @@
  */
 function wp_stream_image( $image, $mime_type, $post_id ) {
 	if ( $image instanceof WP_Image_Editor ) {
+		/**
+		 * Filter the WP_Image_Editor instance for the image to be streamed to the browser.
+		 *
+		 * @since 3.5.0
+		 *
+		 * @param WP_Image_Editor $image   WP_Image_Editor instance.
+		 * @param int             $post_id Post id.
+		 */
 		$image = apply_filters('image_editor_save_pre', $image, $post_id);
 
 		if ( is_wp_error( $image->stream( $mime_type ) ) )
@@ -212,8 +220,15 @@
 	} else {
 		_deprecated_argument( __FUNCTION__, '3.5', __( '$image needs to be an WP_Image_Editor object' ) );
 
+		/**
+		 * Filter the GD image resource to be streamed to the browser.
+		 *
+		 * @since 2.9.0
+		 *
+		 * @param resource $image   Image resource to be streamed.
+		 * @param int      $post_id Post id.
+		 */
 		$image = apply_filters('image_save_pre', $image, $post_id);
-
 		switch ( $mime_type ) {
 			case 'image/jpeg':
 				header( 'Content-Type: image/jpeg' );
@@ -241,7 +256,29 @@
  */
 function wp_save_image_file( $filename, $image, $mime_type, $post_id ) {
 	if ( $image instanceof WP_Image_Editor ) {
+		/**
+		 * Filter the WP_Image_Editor instance for the image to be saved.
+		 *
+		 * @since 3.5.0
+		 *
+		 * @param WP_Image_Editor $image   WP_Image_Editor instance.
+		 * @param int             $post_id Post id.
+		 */
 		$image = apply_filters('image_editor_save_pre', $image, $post_id);
+
+		/**
+		 *
+		 * This filter changes the returned value of the function and returns
+		 * the function before invoking the WP_Image_Editor::save method.
+		 *
+		 * @since 3.5.0
+		 *
+		 * @param                            Value for the function to return.
+		 * @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 )
@@ -251,7 +288,28 @@
 	} else {
 		_deprecated_argument( __FUNCTION__, '3.5', __( '$image needs to be an WP_Image_Editor object' ) );
 
+		/**
+		 * Filter the GD image resource to be saved.
+		 *
+		 * @since 2.9.0
+		 *
+		 * @param resource $image GD image resource to be saved.
+		 * @param int $post_id Post id.
+		 */
 		$image = apply_filters('image_save_pre', $image, $post_id);
+
+		/**
+		 * This filter changes the returned value of the function and returns
+		 * the function before invoking the GD image creation functions.
+		 *
+		 * @since 2.9.0
+		 *
+		 * @param                            Value for the function to return.
+		 * @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 )
@@ -398,10 +456,27 @@
 	}
 
 	// image resource before applying the changes
-	if ( $image instanceof WP_Image_Editor )
+	if ( $image instanceof WP_Image_Editor ) {
+		/**
+		 * Filter the WP_Image_Editor instance before applying changes to the image.
+		 *
+		 * @since 3.5.0
+		 *
+		 * @param WP_Image_Editor $image   WP_Image_Editor instance.
+ 		 * @param array           $changes Array of change operations.
+		 */
 		$image = apply_filters('wp_image_editor_before_change', $image, $changes);
-	elseif ( is_resource( $image ) )
+	} elseif ( is_resource( $image ) ) {
+		/**
+		 * Filter the GD image resource before applying changes to the image.
+		 *
+		 * @since 2.9.0
+		 *
+		 * @param resource $image   GD image resource.
+ 		 * @param array    $changes Array of change operations.
+		 */
 		$image = apply_filters('image_edit_before_change', $image, $changes);
+	}
 
 	foreach ( $changes as $operation ) {
 		switch ( $operation->type ) {
@@ -451,6 +526,7 @@
  */
 function stream_preview_image( $post_id ) {
 	$post = get_post( $post_id );
+	/** This filter is documented in wp-admin/admin.php */
 	@ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
 
 	$img = wp_get_image_editor( _load_image_to_edit_path( $post_id ) );
