BP_Attachment::edit_image( string $attachment_type, array $args = array() )
Edit an image file to resize it or rotate it
Description
Parameters
- $attachment_type
-
(Required) The attachment type (eg: avatar or cover_image). Required.
- $args
-
(Optional)
- 'file'
(string) Absolute path to the image file (required). - 'max_w'
(int) Max width attribute for the editor's resize method (optional). - 'max_h'
(int) Max height attribute for the editor's resize method (optional). - 'crop'
(bool) Crop attribute for the editor's resize method (optional). - 'rotate'
(float) Angle for the editor's rotate method (optional). - 'quality'
(int) Compression quality on a 1-100% scale (optional). - 'save'
(bool) Whether to use the editor's save method or not (optional).
Default value: array()
- 'file'
Return
(string|WP_Image_Editor|WP_Error) The edited image path or the WP_Image_Editor object in case of success, an WP_Error object otherwise.
Source
File: bp-core/classes/class-bp-attachment.php
public static function edit_image( $attachment_type, $args = array() ) { if ( empty( $attachment_type ) ) { return new WP_Error( 'missing_parameter' ); } $r = bp_parse_args( $args, array( 'file' => '', 'max_w' => 0, 'max_h' => 0, 'crop' => false, 'rotate' => 0, 'quality' => 90, 'save' => true, ), 'attachment_' . $attachment_type . '_edit_image' ); // Make sure we have to edit the image. if ( empty( $r['max_w'] ) && empty( $r['max_h'] ) && empty( $r['rotate'] ) && empty( $r['file'] ) ) { return new WP_Error( 'missing_parameter' ); } // Get the image editor. $editor = wp_get_image_editor( $r['file'] ); if ( is_wp_error( $editor ) ) { return $editor; } $editor->set_quality( $r['quality'] ); if ( ! empty( $r['rotate'] ) ) { $rotated = $editor->rotate( $r['rotate'] ); // Stop in case of error. if ( is_wp_error( $rotated ) ) { return $rotated; } } if ( ! empty( $r['max_w'] ) || ! empty( $r['max_h'] ) ) { $resized = $editor->resize( $r['max_w'], $r['max_h'], $r['crop'] ); // Stop in case of error. if ( is_wp_error( $resized ) ) { return $resized; } } // Use the editor save method to get a path to the edited image. if ( true === $r['save'] ) { return $editor->save( $editor->generate_filename() ); // Need to do some other edit actions or use a specific method to save file. } else { return $editor; } }
Changelog
Version | Description |
---|---|
BuddyPress 2.4.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.