". $newfile = $upload_dir['basedir']; // base directory $newsubdir = '/thumb-cache'; //subdirectory like:2012/11 $upload_path = $newfile . $newsubdir; //echo $upload_path = $upload_dir['path']; if ( !file_exists( $upload_path ) ) { // Create the directory if it is missing wp_mkdir_p( $upload_path ); } $file_path = parse_url( $img_url ); if ( isset( $file_path['host'] ) && $_SERVER['HTTP_HOST'] != $file_path['host'] && $file_path['host'] != '' ) { // The image is not locally hosted $remote_file_info = pathinfo( $file_path['path'] ); // Can't use $img_url as the parameter because pathinfo includes the 'query' for the URL if ( isset( $remote_file_info['extension'] ) ) { $remote_file_extension = $remote_file_info['extension']; } else { $remote_file_extension = 'jpg'; } $remote_file_extension = strtolower( $remote_file_extension ); // Not doing this creates multiple copies of a remote image. $file_base = md5( $img_url ) . '.' . $remote_file_extension; // We will try to copy the file over locally. Otherwise WP's native image_resize() breaks down. $copy_to_file = $upload_dir['path'] . '/' . $file_base; if ( !file_exists( $copy_to_file ) ) { $unique_filename = wp_unique_filename( $upload_dir['path'], $file_base ); // Using the HTTP API instead of our own CURL calls... $remote_content = wp_remote_request( $img_url, array( 'sslverify' => false ) ); // Setting the sslverify argument, to prevent errors on HTTPS calls. A user embedding images in a post knows where he is pulling them from if ( is_wp_error( $remote_content ) ) { $copy_to_file = ''; } else { // Not using file open functions, so you have to find your way around by using wp_upload_bits... wp_upload_bits( $unique_filename, null, $remote_content['body'] ); $copy_to_file = $upload_dir['path'] . '/' . $unique_filename; } } $file_path = $copy_to_file; } else { $expath = $file_path['path']; $string = $expath; $find = '/files/'; $findit = strpos( $string, $find ); //echo "
Findit=>".$findit; if ( $findit === false ) { $file_path = andrina_document_root( $file_path['path'] ) . $file_path['path']; } else { $expath = $file_path['path']; $nefilepath = explode( "/files", $expath ); $newpathdir = $nefilepath[1]; $filepath1 = $newfile . $newpathdir; $file_path = $filepath1; // add to mainpath in $file_path } } if ( !file_exists( $file_path ) ) { $resized_image = array( 'url' => $img_url, 'width' => $width, 'height' => $height ); return $resized_image; } $orig_size = @getimagesize( $file_path ); $source[0] = $img_url; $source[1] = $orig_size[0]; $source[2] = $orig_size[1]; $file_info = pathinfo( $file_path ); $extension = ''; if ( isset( $file_info['extension'] ) ) { $extension = '.' . $file_info['extension']; //Image quality is scaled down in case of PNGs, because PNG image creation uses a different scale for quality. if ( $extension == '.png' && $quality != null ) { $quality = floor( 0.09 * $quality ); } } $crop_str = $crop ? '-crop' : '-nocrop'; $quality_str = $quality != null ? '-' . $quality : ''; $cropped_img_path = $upload_path . '/' . $file_info['filename'] . '-' . md5( $file_path ) . '-' . $width . 'x' . $height . $quality_str . $crop_str . $extension; $suffix = md5( $file_path ) . '-' . $width . 'x' . $height . $quality_str . $crop_str; //$img_path=str_replace($upload_dir['basedir'], $upload_dir['baseurl'], $cropped_img_path); // Checking if the file size is larger than the target size // If it is smaller or the same size, stop right here and return if ( $source[1] > $width || $source[2] > $height ) { // Source file is larger, check if the resized version already exists (for $crop = true but will also work for $crop = false if the sizes match) if ( file_exists( $cropped_img_path ) ) { $cropped_img_url = str_replace( $upload_dir['basedir'], $upload_dir['baseurl'], $cropped_img_path ); $resized_image = array( 'url' => $cropped_img_url, 'width' => $width, 'height' => $height ); return $resized_image; } if ( $crop == false ) { // Calculate the size proportionally $proportional_size = wp_constrain_dimensions( $source[1], $source[2], $width, $height ); $resized_img_path = $upload_path . '/' . $file_info['filename'] . '-' . md5( $file_path ) . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . $quality_str . $crop_str . $extension; $suffix = md5( $file_path ) . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . $quality_str . $crop_str; // Checking if the file already exists if ( file_exists( $resized_img_path ) ) { $resized_img_url = str_replace( $upload_dir['basedir'], $upload_dir['baseurl'], $resized_img_path ); $resized_image = array( 'url' => $resized_img_url, 'width' => $proportional_size[0], 'height' => $proportional_size[1] ); return $resized_image; } } $img = wp_get_image_editor( $file_path ); if ( is_wp_error( $img ) ) { $resized_image = array( 'url' => $source[0], 'width' => $source[1], 'height' => $source[2] ); } else { $old_size = $img->get_size(); $resize = $img->resize( $width, $height, $crop ); if ( $resize !== FALSE ) { $new_size = $img->get_size(); } $cropped_img_url = str_replace( $upload_dir['basedir'], $upload_dir['baseurl'], $cropped_img_path ); $img->save( $cropped_img_path ); // resized output $resized_image = array( 'url' => $cropped_img_url, 'width' => $new_size['width'], 'height' => $new_size['height'] ); } return $resized_image; } // default output - without resizing $resized_image = array( 'url' => $source[0], 'width' => $source[1], 'height' => $source[2] ); return $resized_image; } } //multisite ends /** * This function gets attachment id and resizes it * @param type $attach_id * @param type $img_url * @param type $width * @param type $height * @param type $crop * @param type $jpeg_quality * @return type */ function andrina_thumbnail_resize( $attach_id = null, $img_url = null, $width, $height, $crop = false, $jpeg_quality = 90 ) { $file_info['extension'] = ''; $file_info['dirname'] = ''; // this is an attachment, so we have the ID if ( $attach_id ) { $image_src = wp_get_attachment_image_src( $attach_id, 'full' ); $file_path = get_attached_file( $attach_id ); // this is not an attachment, let's use the image url } else if ( $img_url ) { $file_path = parse_url( $img_url ); $file_path = ltrim( $file_path['path'], '/' ); $file_path = rtrim( ABSPATH, '/' ) . $file_path['path']; $orig_size = getimagesize( $file_path ); $image_src[0] = $img_url; $image_src[1] = $orig_size[0]; $image_src[2] = $orig_size[1]; } if ( $file_path != '' ) { $extension = ''; $extension = '.' . isset( $file_info['extension'] ) ? $file_info['extension'] : ''; // the image path without the extension $no_ext_path = isset( $file_info['dirname'] ) ? $file_info['dirname'] : '' . '/' . isset( $file_info['filename'] ) ? $file_info['filename'] : ''; $cropped_img_path = $no_ext_path . '-' . $width . 'x' . $height . $extension; // checking if the file size is larger than the target size // if it is smaller or the same size, stop right here and return if ( $image_src[1] > $width || $image_src[2] > $height ) { // the file is larger, check if the resized version already exists (for crop = true but will also work for crop = false if the sizes match) if ( file_exists( $cropped_img_path ) ) { $cropped_img_url = str_replace( basename( $image_src[0] ), basename( $cropped_img_path ), $image_src[0] ); $vt_image = array( 'url' => $cropped_img_url, 'width' => $width, 'height' => $height ); return $vt_image; } // crop = false if ( $crop == false ) { // calculate the size proportionaly $proportional_size = wp_constrain_dimensions( $image_src[1], $image_src[2], $width, $height ); $resized_img_path = $no_ext_path . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . $extension; // checking if the file already exists if ( file_exists( $resized_img_path ) ) { $resized_img_url = str_replace( basename( $image_src[0] ), basename( $resized_img_path ), $image_src[0] ); $vt_image = array( 'url' => $resized_img_url, 'width' => $proportional_size[0], 'height' => $proportional_size[1] ); return $vt_image; } } // new function replacing image_resize() $img = wp_get_image_editor( $file_path ); if ( !is_wp_error( $img ) ) { $old_size = $img->get_size(); // To show image old width and height as echo $old_size['width'] $resize = $img->resize( $width, $height, $crop ); //$img->set_quality(90); // $resize1=$img->crop( 100, 80, $width-100, $height-80, $width, $height, false ); if ( $resize !== FALSE ) { $new_size = $img->get_size(); // To show image new width and height as echo $new_size['width'] } //$name_file=rand().basename($file_path); $path = str_replace( basename( $image_src[0] ), '', $image_src[0] ); $filename = $img->generate_filename( 'final' . $width, $path . '/', NULL ); $image_detail = $img->save( $filename ); } $new_img = str_replace( basename( $image_src[0] ), basename( $image_detail['path'] ), $image_src[0] ); $vt_image = array( 'url' => $new_img, 'width' => $image_detail['width'], 'height' => $image_detail['height'] ); return $vt_image; } // default output - without resizing $vt_image = array( 'url' => $image_src[0], 'width' => $image_src[1], 'height' => $image_src[2] ); return $vt_image; } else { return null; } } ?>