this is how I’ve done it
preg_match('/\.[^\.]+$/i',$file['file']['name'],$ext);
$name = md5(time().$user_id.rand( 5, 97));
$name_one = $name.$ext[0];
$name_blur = $name.'_blur'.$ext[0];
$file['file']['name'] = $name_one;
$upload = wp_upload_dir();
$uploaded_file = wp_handle_upload( $file['file'], array( 'action'=> 'bp_upload_profile_bg' ) );
//if file was not uploaded correctly
if ( !empty($uploaded_file['error'] ) ) {
bp_core_add_message( sprintf( __( 'Upload Failed! Error was: %s', 'buddypress' ), $uploaded_file['error'] ), 'error' );
return false;
}
$destination = $upload['path']."https://wordpress.stackexchange.com/".$name_blur;
@copy($uploaded_file['file'], $destination);
if ( !empty( $file['file']['type'] ) ) {
$type = $file['file']['type'];
} elseif( !preg_match('/(jpe?g|gif|png)$/i', $file['file']['type'] )) {
$type = preg_match('/(jpe?g|gif|png)$/i', $file['file']['type']);
} else {
$type = preg_match( '/(jpe?g|gif|png)$/i', $file['file']['name'] );
}
if($type == 'image/jpg' || $type == 'image/jpeg') {
$img = imagecreatefromjpeg($destination);
imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
imagefilter($img, IMG_FILTER_SMOOTH, -4);
imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
imagejpeg($img, $destination);
} elseif($type == 'image/png') {
$img = imagecreatefrompng($destination);
imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
imagefilter($img, IMG_FILTER_SMOOTH, -4);
imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
imagepng($img, $destination);
} elseif($type == 'image/gif') {
$img = imagecreatefromgif($destination);
imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
imagefilter($img, IMG_FILTER_SMOOTH, -4);
imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
imagegif($img, $destination);
}
what I do here is I upload image normally, then copy that file with _blur
added to the name and then modify that image
Hope this helps anyone.