2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  WordPress  Image  Editor 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package  WordPress 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ subpackage  Administration 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Loads  the  WP  image - editing  interface . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  @ param  int          $post_id  Post  ID . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  bool | object  $msg      Optional .  Message  to  display  for  image  editor  updates  or  errors . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                              Default  false . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  wp_image_editor (  $post_id ,  $msg  =  false  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$nonce      =  wp_create_nonce (  " image_editor- $post_id "  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$meta       =  wp_get_attachment_metadata (  $post_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$thumb      =  image_get_intermediate_size (  $post_id ,  'thumbnail'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$sub_sizes  =  isset (  $meta [ 'sizes' ]  )  &&  is_array (  $meta [ 'sizes' ]  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$note       =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  isset (  $meta [ 'width' ],  $meta [ 'height' ]  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$big  =  max (  $meta [ 'width' ],  $meta [ 'height' ]  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										die (  __ (  'Image data does not exist. Please re-upload the image.'  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$sizer  =  $big  >  400  ?  400  /  $big  :  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$backup_sizes  =  get_post_meta (  $post_id ,  '_wp_attachment_backup_sizes' ,  true  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$can_restore   =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  !  empty (  $backup_sizes  )  &&  isset (  $backup_sizes [ 'full-orig' ],  $meta [ 'file' ]  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-08 08:05:39 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$can_restore  =  $backup_sizes [ 'full-orig' ][ 'file' ]  !=  wp_basename (  $meta [ 'file' ]  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $msg  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  isset (  $msg -> error  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$note  =  " <div class='error'><p> $msg->error </p></div> " ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										}  elseif  (  isset (  $msg -> msg  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$note  =  " <div class='updated'><p> $msg->msg </p></div> " ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-wrap wp-clearfix " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  id = " imgedit-panel-<?php echo  $post_id ; ?> " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-settings " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group-top " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< h2 >< ? php  _e (  'Scale Image'  );  ?> </h2>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< button  type = " button "  class = " dashicons dashicons-editor-help imgedit-help-toggle "  onclick = " imageEdit.toggleHelp(this);return false; "  aria - expanded = " false " >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Scale Image Help'  );  ?> </span></button>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " imgedit-help " > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< p >< ? php  _e (  'You can proportionally scale the original image. For best results, scaling should be done before you crop, flip, or rotate. Images can only be scaled down, not up.'  );  ?> </p>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< ? php  if  (  isset (  $meta [ 'width' ],  $meta [ 'height' ]  )  )  :  ?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< p >< ? php  printf (  __ (  'Original dimensions %s'  ),  $meta [ 'width' ]  .  ' × '  .  $meta [ 'height' ]  );  ?> </p>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										< ? php  endif  ?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " imgedit-submit " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< fieldset  class = " imgedit-scale " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< legend >< ? php  _e (  'New dimensions:'  );  ?> </legend>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " nowrap " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label >< span  class = " screen-reader-text " >< ? php  _e (  'scale width'  );  ?> </span>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " text "  id = " imgedit-scale-width-<?php echo  $post_id ; ?> "  onkeyup = " imageEdit.scaleChanged(<?php echo  $post_id ; ?>, 1, this) "  onblur = " imageEdit.scaleChanged(<?php echo  $post_id ; ?>, 1, this) "  value = " <?php echo isset(  $meta['width']  ) ?  $meta['width']  : 0; ?> "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span  class = " imgedit-separator " >& times ; </ span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label >< span  class = " screen-reader-text " >< ? php  _e (  'scale height'  );  ?> </span>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " text "  id = " imgedit-scale-height-<?php echo  $post_id ; ?> "  onkeyup = " imageEdit.scaleChanged(<?php echo  $post_id ; ?>, 0, this) "  onblur = " imageEdit.scaleChanged(<?php echo  $post_id ; ?>, 0, this) "  value = " <?php echo isset(  $meta['height']  ) ?  $meta['height']  : 0; ?> "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span  class = " imgedit-scale-warn "  id = " imgedit-scale-warn-<?php echo  $post_id ; ?> " >!</ span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  id = " imgedit-scale-button "  type = " button "  onclick = " imageEdit.action(<?php echo  " $post_id ,  '$nonce' " ; ?>, 'scale') "  class = " button button-primary "  value = " <?php esc_attr_e( 'Scale' ); ?> "  /> 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 </ div > 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										</ fieldset > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< ? php  if  (  $can_restore  )  {  ?> 
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group-top " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< h2 >< button  type = " button "  onclick = " imageEdit.toggleHelp(this); "  class = " button-link " >< ? php  _e (  'Restore Original Image'  );  ?>  <span class="dashicons dashicons-arrow-down imgedit-help-toggle"></span></button></h2>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " imgedit-help " > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										_e (  'Discard any changes and restore the original image.'  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  !  defined (  'IMAGE_EDIT_OVERWRITE'  )  ||  !  IMAGE_EDIT_OVERWRITE  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  ' '  .  __ (  'Previously edited copies of the image will not be deleted.'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ p > 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										< div  class = " imgedit-submit " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " button "  onclick = " imageEdit.action(<?php echo  " $post_id ,  '$nonce' " ; ?>, 'restore') "  class = " button button-primary "  value = " <?php esc_attr_e( 'Restore image' ); ?> "  < ? php  echo  $can_restore ;  ?>  />
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< ? php  }  ?> 
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group-top " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< h2 >< ? php  _e (  'Image Crop'  );  ?> </h2>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< button  type = " button "  class = " dashicons dashicons-editor-help imgedit-help-toggle "  onclick = " imageEdit.toggleHelp(this);return false; "  aria - expanded = " false " >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Image Crop Help'  );  ?> </span></button>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " imgedit-help " > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< p >< ? php  _e (  'To crop the image, click on it and drag to make your selection.'  );  ?> </p>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< p >< strong >< ? php  _e (  'Crop Aspect Ratio'  );  ?> </strong><br />
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< ? php  _e (  'The aspect ratio is the relationship between the width and height. You can preserve the aspect ratio by holding down the shift key while resizing your selection. Use the input box to specify the aspect ratio, e.g. 1:1 (square), 4:3, 16:9, etc.'  );  ?> </p>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< p >< strong >< ? php  _e (  'Crop Selection'  );  ?> </strong><br />
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< ? php  _e (  'Once you have made your selection, you can adjust it by entering the size in pixels. The minimum selection size is the thumbnail size as set in the Media settings.'  );  ?> </p>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< fieldset  class = " imgedit-crop-ratio " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< legend >< ? php  _e (  'Aspect ratio:'  );  ?> </legend>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " nowrap " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label >< span  class = " screen-reader-text " >< ? php  _e (  'crop ratio width'  );  ?> </span>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " text "  id = " imgedit-crop-width-<?php echo  $post_id ; ?> "  onkeyup = " imageEdit.setRatioSelection(<?php echo  $post_id ; ?>, 0, this) "  onblur = " imageEdit.setRatioSelection(<?php echo  $post_id ; ?>, 0, this) "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span  class = " imgedit-separator " >:</ span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label >< span  class = " screen-reader-text " >< ? php  _e (  'crop ratio height'  );  ?> </span>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " text "  id = " imgedit-crop-height-<?php echo  $post_id ; ?> "  onkeyup = " imageEdit.setRatioSelection(<?php echo  $post_id ; ?>, 1, this) "  onblur = " imageEdit.setRatioSelection(<?php echo  $post_id ; ?>, 1, this) "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ fieldset > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< fieldset  id = " imgedit-crop-sel-<?php echo  $post_id ; ?> "  class = " imgedit-crop-sel " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< legend >< ? php  _e (  'Selection:'  );  ?> </legend>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " nowrap " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label >< span  class = " screen-reader-text " >< ? php  _e (  'selection width'  );  ?> </span>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " text "  id = " imgedit-sel-width-<?php echo  $post_id ; ?> "  onkeyup = " imageEdit.setNumSelection(<?php echo  $post_id ; ?>, this) "  onblur = " imageEdit.setNumSelection(<?php echo  $post_id ; ?>, this) "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< span  class = " imgedit-separator " >& times ; </ span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label >< span  class = " screen-reader-text " >< ? php  _e (  'selection height'  );  ?> </span>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " text "  id = " imgedit-sel-height-<?php echo  $post_id ; ?> "  onkeyup = " imageEdit.setNumSelection(<?php echo  $post_id ; ?>, this) "  onblur = " imageEdit.setNumSelection(<?php echo  $post_id ; ?>, this) "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ label > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ fieldset > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $thumb  &&  $sub_sizes  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$thumb_img  =  wp_constrain_dimensions (  $thumb [ 'width' ],  $thumb [ 'height' ],  160 ,  120  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										?> 
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group imgedit-applyto " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-group-top " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< h2 >< ? php  _e (  'Thumbnail Settings'  );  ?> </h2>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< button  type = " button "  class = " dashicons dashicons-editor-help imgedit-help-toggle "  onclick = " imageEdit.toggleHelp(this);return false; "  aria - expanded = " false " >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Thumbnail Settings Help'  );  ?> </span></button>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< p  class = " imgedit-help " >< ? php  _e (  'You can edit the image while preserving the thumbnail. For example, you may wish to have a square thumbnail that displays just a section of the image.'  );  ?> </p>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< figure  class = " imgedit-thumbnail-preview " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< img  src = " <?php echo  $thumb['url'] ; ?> "  width = " <?php echo  $thumb_img[0] ; ?> "  height = " <?php echo  $thumb_img[1] ; ?> "  class = " imgedit-size-preview "  alt = " "  draggable = " false "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< figcaption  class = " imgedit-thumbnail-preview-caption " >< ? php  _e (  'Current thumbnail'  );  ?> </figcaption>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ figure > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  id = " imgedit-save-target-<?php echo  $post_id ; ?> "  class = " imgedit-save-target " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< fieldset > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< legend >< strong >< ? php  _e (  'Apply changes to:'  );  ?> </strong></legend>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label  class = " imgedit-label " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " radio "  name = " imgedit-target-<?php echo  $post_id ; ?> "  value = " all "  checked = " checked "  /> 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< ? php  _e (  'All image sizes'  );  ?> </label>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label  class = " imgedit-label " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " radio "  name = " imgedit-target-<?php echo  $post_id ; ?> "  value = " thumbnail "  /> 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< ? php  _e (  'Thumbnail'  );  ?> </label>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< label  class = " imgedit-label " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " radio "  name = " imgedit-target-<?php echo  $post_id ; ?> "  value = " nothumb "  /> 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< ? php  _e (  'All sizes except thumbnail'  );  ?> </label>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</ fieldset > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< ? php  }  ?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-panel-content wp-clearfix " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< ? php  echo  $note ;  ?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " imgedit-menu wp-clearfix " > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											< button  type = " button "  onclick = " imageEdit.handleCropToolClick( <?php echo  " $post_id ,  '$nonce' " ; ?>, this ) "  class = " imgedit-crop button disabled "  disabled >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Crop'  );  ?> </span></button>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																										< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																										// On some setups GD library does not provide imagerotate() - Ticket #11536
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																										if  (  wp_image_editor_supports ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																											array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																												'mime_type'  =>  get_post_mime_type (  $post_id  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																												'methods'    =>  array (  'rotate'  ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																											) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																										)  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																											$note_no_rotate  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																											?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																										< button  type = " button "  class = " imgedit-rleft button "  onclick = " imageEdit.rotate( 90, <?php echo  " $post_id ,  '$nonce' " ; ?>, this) " >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Rotate counter-clockwise'  );  ?> </span></button>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											< button  type = " button "  class = " imgedit-rright button "  onclick = " imageEdit.rotate(-90, <?php echo  " $post_id ,  '$nonce' " ; ?>, this) " >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Rotate clockwise'  );  ?> </span></button>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
																											< ? php 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																													$note_no_rotate  =  '<p class="note-no-rotate"><em>'  .  __ (  'Image rotation is not supported by your web host.'  )  .  '</em></p>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																											?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																												< button  type = " button "  class = " imgedit-rleft button disabled "  disabled ></ button > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																												< button  type = " button "  class = " imgedit-rright button disabled "  disabled ></ button > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
																										< ? php  }  ?> 
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< button  type = " button "  onclick = " imageEdit.flip(1, <?php echo  " $post_id ,  '$nonce' " ; ?>, this) "  class = " imgedit-flipv button " >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Flip vertically'  );  ?> </span></button>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< button  type = " button "  onclick = " imageEdit.flip(2, <?php echo  " $post_id ,  '$nonce' " ; ?>, this) "  class = " imgedit-fliph button " >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Flip horizontally'  );  ?> </span></button>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< button  type = " button "  id = " image-undo-<?php echo  $post_id ; ?> "  onclick = " imageEdit.undo(<?php echo  " $post_id ,  '$nonce' " ; ?>, this) "  class = " imgedit-undo button disabled "  disabled >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Undo'  );  ?> </span></button>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< button  type = " button "  id = " image-redo-<?php echo  $post_id ; ?> "  onclick = " imageEdit.redo(<?php echo  " $post_id ,  '$nonce' " ; ?>, this) "  class = " imgedit-redo button disabled "  disabled >< span  class = " screen-reader-text " >< ? php  esc_html_e (  'Redo'  );  ?> </span></button>
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< ? php  echo  $note_no_rotate ;  ?> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " hidden "  id = " imgedit-sizer-<?php echo  $post_id ; ?> "  value = " <?php echo  $sizer ; ?> "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " hidden "  id = " imgedit-history-<?php echo  $post_id ; ?> "  value = " "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " hidden "  id = " imgedit-undone-<?php echo  $post_id ; ?> "  value = " 0 "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " hidden "  id = " imgedit-selection-<?php echo  $post_id ; ?> "  value = " "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " hidden "  id = " imgedit-x-<?php echo  $post_id ; ?> "  value = " <?php echo isset(  $meta['width']  ) ?  $meta['width']  : 0; ?> "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< input  type = " hidden "  id = " imgedit-y-<?php echo  $post_id ; ?> "  value = " <?php echo isset(  $meta['height']  ) ?  $meta['height']  : 0; ?> "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  id = " imgedit-crop-<?php echo  $post_id ; ?> "  class = " imgedit-crop-wrap " > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										< img  id = " image-preview-<?php echo  $post_id ; ?> "  onload = " imageEdit.imgLoaded('<?php echo  $post_id ; ?>') "  src = " <?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>?action=imgedit-preview&_ajax_nonce=<?php echo  $nonce ; ?>&postid=<?php echo  $post_id ; ?>&rand=<?php echo rand( 1, 99999 ); ?> "  alt = " "  /> 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										< div  class = " imgedit-submit " > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< input  type = " button "  onclick = " imageEdit.close(<?php echo  $post_id ; ?>, 1) "  class = " button imgedit-cancel-btn "  value = " <?php esc_attr_e( 'Cancel' ); ?> "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											< input  type = " button "  onclick = " imageEdit.save(<?php echo  " $post_id ,  '$nonce' " ; ?>) "  disabled = " disabled "  class = " button button-primary imgedit-submit-btn "  value = " <?php esc_attr_e( 'Save' ); ?> "  /> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									< div  class = " imgedit-wait "  id = " imgedit-wait-<?php echo  $post_id ; ?> " ></ div > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< div  class = " hidden "  id = " imgedit-leaving-<?php echo  $post_id ; ?> " >< ? php  _e (  " There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to return to the Image Editor. "  );  ?> </div>
 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</ div > 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									< ? php 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Streams  image  in  WP_Image_Editor  to  browser . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  @ param  WP_Image_Editor  $image          The  image  editor  instance . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string           $mime_type      The  mime  type  of  the  image . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  int              $attachment_id  The  image ' s  attachment  post  ID . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  bool  True  on  success ,  false  on  failure . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  wp_stream_image (  $image ,  $mime_type ,  $attachment_id  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $image  instanceof  WP_Image_Editor  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Filters  the  WP_Image_Editor  instance  for  the  image  to  be  streamed  to  the  browser . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ since  3.5 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  WP_Image_Editor  $image          The  image  editor  instance . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  int              $attachment_id  The  attachment  post  ID . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$image  =  apply_filters (  'image_editor_save_pre' ,  $image ,  $attachment_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  is_wp_error (  $image -> stream (  $mime_type  )  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										_deprecated_argument (  __FUNCTION__ ,  '3.5.0' ,  __ (  '$image needs to be an WP_Image_Editor object'  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Filters  the  GD  image  resource  to  be  streamed  to  the  browser . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ deprecated  3.5 . 0  Use  image_editor_save_pre  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  resource  $image          Image  resource  to  be  streamed . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  int       $attachment_id  The  attachment  post  ID . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$image  =  apply_filters (  'image_save_pre' ,  $image ,  $attachment_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  (  $mime_type  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'image/jpeg' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												header (  'Content-Type: image/jpeg'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  imagejpeg (  $image ,  null ,  90  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'image/png' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												header (  'Content-Type: image/png'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  imagepng (  $image  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'image/gif' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												header (  'Content-Type: image/gif'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  imagegif (  $image  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Saves  image  to  file . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string  $filename 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  WP_Image_Editor  $image 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string  $mime_type 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  int  $post_id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  bool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  wp_save_image_file (  $filename ,  $image ,  $mime_type ,  $post_id  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $image  instanceof  WP_Image_Editor  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** This filter is documented in wp-admin/includes/image-edit.php */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$image  =  apply_filters (  'image_editor_save_pre' ,  $image ,  $post_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Filters  whether  to  skip  saving  the  image  file . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Returning  a  non - null  value  will  short - circuit  the  save  method , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  returning  that  value  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ since  3.5 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  mixed            $override   Value  to  return  instead  of  saving .  Default  null . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ 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  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  null  !==  $saved  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											return  $saved ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  $image -> save (  $filename ,  $mime_type  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										_deprecated_argument (  __FUNCTION__ ,  '3.5.0' ,  __ (  '$image needs to be an WP_Image_Editor object'  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** This filter is documented in wp-admin/includes/image-edit.php */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$image  =  apply_filters (  'image_save_pre' ,  $image ,  $post_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Filters  whether  to  skip  saving  the  image  file . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Returning  a  non - null  value  will  short - circuit  the  save  method , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  returning  that  value  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ deprecated  3.5 . 0  Use  wp_save_image_editor_file  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  mixed            $override   Value  to  return  instead  of  saving .  Default  null . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ 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  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  null  !==  $saved  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											return  $saved ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  (  $mime_type  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'image/jpeg' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												/** This filter is documented in wp-includes/class-wp-image-editor.php */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												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 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Image  preview  ratio .  Internal  use  only . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ ignore 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  int  $w  Image  width  in  pixels . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  int  $h  Image  height  in  pixels . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  float | int  Image  preview  ratio . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  _image_get_preview_ratio (  $w ,  $h  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$max  =  max (  $w ,  $h  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $max  >  400  ?  (  400  /  $max  )  :  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Returns  an  image  resource .  Internal  use  only . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ deprecated  3.5 . 0  Use  WP_Image_Editor :: rotate () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ see  WP_Image_Editor :: rotate () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ ignore 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  resource   $img    Image  resource . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  float | int  $angle  Image  rotation  angle ,  in  degrees . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  resource | false  GD  image  resource ,  false  otherwise . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  _rotate_image_resource (  $img ,  $angle  )  {  
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									_deprecated_function (  __FUNCTION__ ,  '3.5.0' ,  'WP_Image_Editor::rotate()'  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  function_exists (  'imagerotate'  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$rotated  =  imagerotate (  $img ,  $angle ,  0  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  is_resource (  $rotated  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											imagedestroy (  $img  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$img  =  $rotated ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $img ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Flips  an  image  resource .  Internal  use  only . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ deprecated  3.5 . 0  Use  WP_Image_Editor :: flip () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ see  WP_Image_Editor :: flip () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ ignore 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  resource  $img   Image  resource . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  bool      $horz  Whether  to  flip  horizontally . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  bool      $vert  Whether  to  flip  vertically . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  resource  ( maybe )  flipped  image  resource . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  _flip_image_resource (  $img ,  $horz ,  $vert  )  {  
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									_deprecated_function (  __FUNCTION__ ,  '3.5.0' ,  'WP_Image_Editor::flip()'  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$w    =  imagesx (  $img  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$h    =  imagesy (  $img  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$dst  =  wp_imagecreatetruecolor (  $w ,  $h  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  is_resource (  $dst  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$sx  =  $vert  ?  (  $w  -  1  )  :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$sy  =  $horz  ?  (  $h  -  1  )  :  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$sw  =  $vert  ?  - $w  :  $w ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$sh  =  $horz  ?  - $h  :  $h ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  imagecopyresampled (  $dst ,  $img ,  0 ,  0 ,  $sx ,  $sy ,  $w ,  $h ,  $sw ,  $sh  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											imagedestroy (  $img  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$img  =  $dst ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $img ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Crops  an  image  resource .  Internal  use  only . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ ignore 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  resource  $img  Image  resource . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  float     $x    Source  point  x - coordinate . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  float     $y    Source  point  y - cooredinate . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  float     $w    Source  width . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  float     $h    Source  height . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  resource  ( maybe )  cropped  image  resource . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  _crop_image_resource (  $img ,  $x ,  $y ,  $w ,  $h  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$dst  =  wp_imagecreatetruecolor (  $w ,  $h  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  is_resource (  $dst  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  imagecopy (  $dst ,  $img ,  0 ,  0 ,  $x ,  $y ,  $w ,  $h  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											imagedestroy (  $img  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$img  =  $dst ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $img ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Performs  group  of  changes  on  Editor  specified . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  WP_Image_Editor  $image    WP_Image_Editor  instance . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  array            $changes  Array  of  change  operations . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  WP_Image_Editor  WP_Image_Editor  instance  with  changes  applied . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  image_edit_apply_changes (  $image ,  $changes  )  {  
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  is_resource (  $image  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										_deprecated_argument (  __FUNCTION__ ,  '3.5.0' ,  __ (  '$image needs to be an WP_Image_Editor object'  )  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  !  is_array (  $changes  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  $image ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Expand change operations.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									foreach  (  $changes  as  $key  =>  $obj  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  isset (  $obj -> r  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$obj -> type   =  'rotate' ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$obj -> angle  =  $obj -> r ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											unset (  $obj -> r  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  elseif  (  isset (  $obj -> f  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$obj -> type  =  'flip' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$obj -> axis  =  $obj -> f ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											unset (  $obj -> f  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  elseif  (  isset (  $obj -> c  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$obj -> type  =  'crop' ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$obj -> sel   =  $obj -> c ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											unset (  $obj -> c  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$changes [  $key  ]  =  $obj ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Combine operations.
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  count (  $changes  )  >  1  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$filtered  =  array (  $changes [ 0 ]  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										for  (  $i  =  0 ,  $j  =  1 ,  $c  =  count (  $changes  );  $j  <  $c ;  $j ++  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$combined  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  (  $filtered [  $i  ] -> type  ==  $changes [  $j  ] -> type  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												switch  (  $filtered [  $i  ] -> type  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
													case  'rotate' : 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														$filtered [  $i  ] -> angle  +=  $changes [  $j  ] -> angle ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$combined                =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													case  'flip' : 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														$filtered [  $i  ] -> axis  ^=  $changes [  $j  ] -> axis ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$combined               =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  (  !  $combined  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$filtered [  ++ $i  ]  =  $changes [  $j  ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$changes  =  $filtered ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										unset (  $filtered  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Image resource before applying the changes.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $image  instanceof  WP_Image_Editor  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Filters  the  WP_Image_Editor  instance  before  applying  changes  to  the  image . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ since  3.5 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  WP_Image_Editor  $image    WP_Image_Editor  instance . 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 *  @ param  array            $changes  Array  of  change  operations . 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$image  =  apply_filters (  'wp_image_editor_before_change' ,  $image ,  $changes  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  elseif  (  is_resource (  $image  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  Filters  the  GD  image  resource  before  applying  changes  to  the  image . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ deprecated  3.5 . 0  Use  wp_image_editor_before_change  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										 *  @ param  resource  $image    GD  image  resource . 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										 *  @ param  array     $changes  Array  of  change  operations . 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$image  =  apply_filters (  'image_edit_before_change' ,  $image ,  $changes  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									foreach  (  $changes  as  $operation  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										switch  (  $operation -> type  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'rotate' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  (  $operation -> angle  !=  0  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													if  (  $image  instanceof  WP_Image_Editor  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														$image -> rotate (  $operation -> angle  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														$image  =  _rotate_image_resource (  $image ,  $operation -> angle  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'flip' : 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  (  $operation -> axis  !=  0  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  (  $image  instanceof  WP_Image_Editor  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$image -> flip (  (  $operation -> axis  &  1  )  !=  0 ,  (  $operation -> axis  &  2  )  !=  0  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														$image  =  _flip_image_resource (  $image ,  (  $operation -> axis  &  1  )  !=  0 ,  (  $operation -> axis  &  2  )  !=  0  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											case  'crop' : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sel  =  $operation -> sel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  (  $image  instanceof  WP_Image_Editor  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$size  =  $image -> get_size (); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													$w     =  $size [ 'width' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$h     =  $size [ 'height' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$scale  =  1  /  _image_get_preview_ratio (  $w ,  $h  );  // discard preview scaling
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$image -> crop (  $sel -> x  *  $scale ,  $sel -> y  *  $scale ,  $sel -> w  *  $scale ,  $sel -> h  *  $scale  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$scale  =  1  /  _image_get_preview_ratio (  imagesx (  $image  ),  imagesy (  $image  )  );  // discard preview scaling
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$image  =  _crop_image_resource (  $image ,  $sel -> x  *  $scale ,  $sel -> y  *  $scale ,  $sel -> w  *  $scale ,  $sel -> h  *  $scale  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $image ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Streams  image  in  post  to  browser ,  along  with  enqueued  changes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  in  $_REQUEST [ 'history' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  @ param  int  $post_id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  bool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  stream_preview_image (  $post_id  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$post  =  get_post (  $post_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									wp_raise_memory_limit (  'admin'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$img  =  wp_get_image_editor (  _load_image_to_edit_path (  $post_id  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  is_wp_error (  $img  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$changes  =  !  empty (  $_REQUEST [ 'history' ]  )  ?  json_decode (  wp_unslash (  $_REQUEST [ 'history' ]  )  )  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $changes  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$img  =  image_edit_apply_changes (  $img ,  $changes  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Scale the image.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$size  =  $img -> get_size (); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$w     =  $size [ 'width' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$h     =  $size [ 'height' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$ratio  =  _image_get_preview_ratio (  $w ,  $h  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$w2     =  max (  1 ,  $w  *  $ratio  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$h2     =  max (  1 ,  $h  *  $ratio  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  is_wp_error (  $img -> resize (  $w2 ,  $h2  )  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  wp_stream_image (  $img ,  $post -> post_mime_type ,  $post_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Restores  the  metadata  for  a  given  attachment . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  int  $post_id  Attachment  post  ID . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  stdClass  Image  restoration  message  object . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  wp_restore_image (  $post_id  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$meta          =  wp_get_attachment_metadata (  $post_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$file          =  get_attached_file (  $post_id  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									$backup_sizes  =  $old_backup_sizes  =  get_post_meta (  $post_id ,  '_wp_attachment_backup_sizes' ,  true  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$restored      =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$msg           =  new  stdClass ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  !  is_array (  $backup_sizes  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$msg -> error  =  __ (  'Cannot load image metadata.'  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  $msg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$parts          =  pathinfo (  $file  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$suffix         =  time ()  .  rand (  100 ,  999  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									$default_sizes  =  get_intermediate_image_sizes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  isset (  $backup_sizes [ 'full-orig' ]  )  &&  is_array (  $backup_sizes [ 'full-orig' ]  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$data  =  $backup_sizes [ 'full-orig' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  $parts [ 'basename' ]  !=  $data [ 'file' ]  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  (  defined (  'IMAGE_EDIT_OVERWRITE'  )  &&  IMAGE_EDIT_OVERWRITE  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// Delete only if it's an edited image.
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  (  preg_match (  '/-e[0-9]{13}\./' ,  $parts [ 'basename' ]  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
													wp_delete_file (  $file  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											}  elseif  (  isset (  $meta [ 'width' ],  $meta [ 'height' ]  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$backup_sizes [  " full- $suffix "  ]  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'width'   =>  $meta [ 'width' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'height'  =>  $meta [ 'height' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'file'    =>  $parts [ 'basename' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$restored_file  =  path_join (  $parts [ 'dirname' ],  $data [ 'file' ]  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$restored       =  update_attached_file (  $post_id ,  $restored_file  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$meta [ 'file' ]    =  _wp_relative_upload_path (  $restored_file  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$meta [ 'width' ]   =  $data [ 'width' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$meta [ 'height' ]  =  $data [ 'height' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									foreach  (  $default_sizes  as  $default_size  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  isset (  $backup_sizes [  " $default_size -orig "  ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$data  =  $backup_sizes [  " $default_size -orig "  ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (  isset (  $meta [ 'sizes' ][  $default_size  ]  )  &&  $meta [ 'sizes' ][  $default_size  ][ 'file' ]  !=  $data [ 'file' ]  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  (  defined (  'IMAGE_EDIT_OVERWRITE'  )  &&  IMAGE_EDIT_OVERWRITE  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													// Delete only if it's an edited image.
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													if  (  preg_match (  '/-e[0-9]{13}-/' ,  $meta [ 'sizes' ][  $default_size  ][ 'file' ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$delete_file  =  path_join (  $parts [ 'dirname' ],  $meta [ 'sizes' ][  $default_size  ][ 'file' ]  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														wp_delete_file (  $delete_file  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													$backup_sizes [  " $default_size - { $suffix } "  ]  =  $meta [ 'sizes' ][  $default_size  ]; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$meta [ 'sizes' ][  $default_size  ]  =  $data ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											unset (  $meta [ 'sizes' ][  $default_size  ]  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  !  wp_update_attachment_metadata (  $post_id ,  $meta  )  || 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										(  $old_backup_sizes  !==  $backup_sizes  &&  !  update_post_meta (  $post_id ,  '_wp_attachment_backup_sizes' ,  $backup_sizes  )  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$msg -> error  =  __ (  'Cannot save image metadata.'  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  $msg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  !  $restored  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$msg -> error  =  __ (  'Image metadata is inconsistent.'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$msg -> msg  =  __ (  'Image restored successfully.'  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									return  $msg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Saves  image  to  post  along  with  enqueued  changes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  in  $_REQUEST [ 'history' ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ since  2.9 . 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  @ param  int  $post_id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  \stdClass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function  wp_save_image (  $post_id  )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$_wp_additional_image_sizes  =  wp_get_additional_image_sizes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$return   =  new  stdClass ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									$success  =  $delete  =  $scaled  =  $nocrop  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$post     =  get_post (  $post_id  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$img  =  wp_get_image_editor (  _load_image_to_edit_path (  $post_id ,  'full'  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  is_wp_error (  $img  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return -> error  =  esc_js (  __ (  'Unable to create new image.'  )  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$fwidth   =  !  empty (  $_REQUEST [ 'fwidth' ]  )  ?  intval (  $_REQUEST [ 'fwidth' ]  )  :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$fheight  =  !  empty (  $_REQUEST [ 'fheight' ]  )  ?  intval (  $_REQUEST [ 'fheight' ]  )  :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$target   =  !  empty (  $_REQUEST [ 'target' ]  )  ?  preg_replace (  '/[^a-z0-9_-]+/i' ,  '' ,  $_REQUEST [ 'target' ]  )  :  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$scale    =  !  empty (  $_REQUEST [ 'do' ]  )  &&  'scale'  ==  $_REQUEST [ 'do' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $scale  &&  $fwidth  >  0  &&  $fheight  >  0  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$size  =  $img -> get_size (); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$sX    =  $size [ 'width' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$sY    =  $size [ 'height' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// Check if it has roughly the same w / h ratio.
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$diff  =  round (  $sX  /  $sY ,  2  )  -  round (  $fwidth  /  $fheight ,  2  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										if  (  - 0.1  <  $diff  &&  $diff  <  0.1  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// Scale the full size image.
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  (  $img -> resize (  $fwidth ,  $fheight  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												$scaled  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  !  $scaled  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> error  =  esc_js (  __ (  'Error while saving the scaled image. Please reload the page and try again.'  )  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									}  elseif  (  !  empty (  $_REQUEST [ 'history' ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$changes  =  json_decode (  wp_unslash (  $_REQUEST [ 'history' ]  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  $changes  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$img  =  image_edit_apply_changes (  $img ,  $changes  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return -> error  =  esc_js (  __ (  'Nothing to save, the image has not changed.'  )  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$meta          =  wp_get_attachment_metadata (  $post_id  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									$backup_sizes  =  get_post_meta (  $post -> ID ,  '_wp_attachment_backup_sizes' ,  true  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  !  is_array (  $meta  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return -> error  =  esc_js (  __ (  'Image data does not exist. Please re-upload the image.'  )  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  !  is_array (  $backup_sizes  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$backup_sizes  =  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Generate new filename.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$path  =  get_attached_file (  $post_id  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$basename  =  pathinfo (  $path ,  PATHINFO_BASENAME  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$dirname   =  pathinfo (  $path ,  PATHINFO_DIRNAME  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$ext       =  pathinfo (  $path ,  PATHINFO_EXTENSION  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									$filename  =  pathinfo (  $path ,  PATHINFO_FILENAME  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$suffix    =  time ()  .  rand (  100 ,  999  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  defined (  'IMAGE_EDIT_OVERWRITE'  )  &&  IMAGE_EDIT_OVERWRITE  && 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										isset (  $backup_sizes [ 'full-orig' ]  )  &&  $backup_sizes [ 'full-orig' ][ 'file' ]  !=  $basename  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  'thumbnail'  ==  $target  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$new_path  =  " { $dirname } / { $filename } -temp. { $ext } " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$new_path  =  $path ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										while  (  true  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$filename      =  preg_replace (  '/-e([0-9]+)$/' ,  '' ,  $filename  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$filename     .=  " -e { $suffix } " ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$new_filename  =  " { $filename } . { $ext } " ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$new_path      =  " { $dirname } / $new_filename " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (  file_exists (  $new_path  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												$suffix ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									// Save the full-size file, also needed to create sub-sizes.
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  (  !  wp_save_image_file (  $new_path ,  $img ,  $post -> post_mime_type ,  $post_id  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return -> error  =  esc_js (  __ (  'Unable to save the image.'  )  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  'nothumb'  ===  $target  ||  'all'  ===  $target  ||  'full'  ===  $target  ||  $scaled  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$tag  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  isset (  $backup_sizes [ 'full-orig' ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (  (  !  defined (  'IMAGE_EDIT_OVERWRITE'  )  ||  !  IMAGE_EDIT_OVERWRITE  )  &&  $backup_sizes [ 'full-orig' ][ 'file' ]  !==  $basename  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$tag  =  " full- $suffix " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$tag  =  'full-orig' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  $tag  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$backup_sizes [  $tag  ]  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'width'   =>  $meta [ 'width' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'height'  =>  $meta [ 'height' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'file'    =>  $basename , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$success  =  (  $path  ===  $new_path  )  ||  update_attached_file (  $post_id ,  $new_path  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$meta [ 'file' ]  =  _wp_relative_upload_path (  $new_path  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$size            =  $img -> get_size (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$meta [ 'width' ]   =  $size [ 'width' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$meta [ 'height' ]  =  $size [ 'height' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (  $success  &&  (  'nothumb'  ==  $target  ||  'all'  ==  $target  )  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											$sizes  =  get_intermediate_image_sizes (); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  (  'nothumb'  ==  $target  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sizes  =  array_diff (  $sizes ,  array (  'thumbnail'  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return -> fw  =  $meta [ 'width' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return -> fh  =  $meta [ 'height' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  elseif  (  'thumbnail'  ==  $target  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$sizes    =  array (  'thumbnail'  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										$success  =  $delete  =  $nocrop  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  We  need  to  remove  any  existing  resized  image  files  because 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  a  new  crop  or  rotate  could  generate  different  sizes  ( and  hence ,  filenames ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  keeping  the  new  resized  images  from  overwriting  the  existing  image  files . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  https :// core . trac . wordpress . org / ticket / 32171 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  defined (  'IMAGE_EDIT_OVERWRITE'  )  &&  IMAGE_EDIT_OVERWRITE  &&  !  empty (  $meta [ 'sizes' ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  (  $meta [ 'sizes' ]  as  $size  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (  !  empty (  $size [ 'file' ]  )  &&  preg_match (  '/-e[0-9]{13}-/' ,  $size [ 'file' ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$delete_file  =  path_join (  $dirname ,  $size [ 'file' ]  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												wp_delete_file (  $delete_file  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  isset (  $sizes  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$_sizes  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  (  $sizes  as  $size  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$tag  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  (  isset (  $meta [ 'sizes' ][  $size  ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  (  isset (  $backup_sizes [  " $size -orig "  ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  (  (  !  defined (  'IMAGE_EDIT_OVERWRITE'  )  ||  !  IMAGE_EDIT_OVERWRITE  )  &&  $backup_sizes [  " $size -orig "  ][ 'file' ]  !=  $meta [ 'sizes' ][  $size  ][ 'file' ]  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
														$tag  =  " $size - $suffix " ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$tag  =  " $size -orig " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  (  $tag  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$backup_sizes [  $tag  ]  =  $meta [ 'sizes' ][  $size  ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (  isset (  $_wp_additional_image_sizes [  $size  ]  )  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$width   =  intval (  $_wp_additional_image_sizes [  $size  ][ 'width' ]  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$height  =  intval (  $_wp_additional_image_sizes [  $size  ][ 'height' ]  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$crop    =  (  $nocrop  )  ?  false  :  $_wp_additional_image_sizes [  $size  ][ 'crop' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$height  =  get_option (  " { $size } _size_h "  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$width   =  get_option (  " { $size } _size_w "  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$crop    =  (  $nocrop  )  ?  false  :  get_option (  " { $size } _crop "  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$_sizes [  $size  ]  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'width'   =>  $width , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'height'  =>  $height , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'crop'    =>  $crop , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$meta [ 'sizes' ]  =  array_merge (  $meta [ 'sizes' ],  $img -> multi_resize (  $_sizes  )  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									unset (  $img  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $success  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										wp_update_attachment_metadata (  $post_id ,  $meta  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										update_post_meta (  $post_id ,  '_wp_attachment_backup_sizes' ,  $backup_sizes  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  (  $target  ==  'thumbnail'  ||  $target  ==  'all'  ||  $target  ==  'full'  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// Check if it's an image edit from attachment edit screen
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (  !  empty (  $_REQUEST [ 'context' ]  )  &&  'edit-attachment'  ==  $_REQUEST [ 'context' ]  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$thumb_url          =  wp_get_attachment_image_src (  $post_id ,  array (  900 ,  600  ),  true  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												$return -> thumbnail  =  $thumb_url [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$file_url  =  wp_get_attachment_url (  $post_id  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												if  (  !  empty (  $meta [ 'sizes' ][ 'thumbnail' ]  )  &&  $thumb  =  $meta [ 'sizes' ][ 'thumbnail' ]  )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													$return -> thumbnail  =  path_join (  dirname (  $file_url  ),  $thumb [ 'file' ]  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
												}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$return -> thumbnail  =  " $file_url ?w=128&h=128 " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$delete  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  (  $delete  )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										wp_delete_file (  $new_path  ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 20:56:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$return -> msg  =  esc_js (  __ (  'Image saved'  )  ); 
							 
						 
					
						
							
								
									
										
										
										
											2019-03-12 09:27:46 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}