Ignore:
Timestamp:
04/29/11 19:38:59 (9 years ago)
Author:
patdenice
Message:

feature:2259
Create two different methods in webservice to create/regenerate thumbnail and to regenerate websize.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/ws_functions.inc.php

    r10653 r10686  
    26592659} 
    26602660 
    2661 function ws_images_resize($params, &$service) 
    2662 { 
    2663   global $conf; 
    2664  
     2661function ws_images_resizethumbnail($params, &$service) 
     2662{ 
    26652663  if (!is_admin()) 
    26662664  { 
     
    26682666  } 
    26692667 
    2670   if (!in_array($params['type'], array('thumbnail', 'websize'))) 
    2671   { 
    2672     return new PwgError(403, 'Unknown type (only "thumbnail" or "websize" are accepted'); 
    2673   } 
    2674  
    26752668  if (empty($params['image_id']) and empty($params['image_path'])) 
    26762669  { 
     
    26782671  } 
    26792672 
    2680   $resize_params = array('maxwidth', 'maxheight', 'quality', 'crop', 'follow_orientation'); 
    2681   $type = $params['type'] == 'thumbnail' ? 'thumb' : 'websize'; 
    2682   foreach ($resize_params as $param) 
    2683   { 
    2684     if (empty($params[$param]) and isset($conf['upload_form_'.$type.'_'.$param])) 
    2685       $params[$param] = $conf['upload_form_'.$type.'_'.$param]; 
    2686   } 
    2687  
    2688   include_once(PHPWG_ROOT_PATH.'include/functions_picture.inc.php'); 
    26892673  include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php'); 
    26902674  include_once(PHPWG_ROOT_PATH.'admin/include/image.class.php'); 
     
    27062690    $image_path = $image['path']; 
    27072691    $thumb_path = get_thumbnail_path($image); 
    2708     $hd_path = get_high_path($image); 
    27092692  } 
    27102693  else 
     
    27122695    $image_path = $params['image_path']; 
    27132696    $thumb_path = file_path_for_type($image_path, 'thumb'); 
    2714     $hd_path = file_path_for_type($image_path, 'high'); 
    2715   } 
    2716  
    2717   if (!is_valid_image_extension(get_extension($image_path))) 
     2697  } 
     2698 
     2699  if (!file_exists($image_path) or !is_valid_image_extension(get_extension($image_path))) 
    27182700  { 
    27192701    return new PwgError(403, "image can't be resized"); 
     
    27212703 
    27222704  $result = false; 
    2723  
    2724   if ($params['type'] == 'thumbnail' and file_exists($image_path)) 
    2725   { 
    2726     prepare_directory(dirname($thumb_path)); 
    2727  
    2728     $img = new pwg_image($image_path, $params['library']); 
    2729  
    2730     $result =  $img->pwg_resize( 
    2731       $thumb_path, 
    2732       $params['maxwidth'], 
    2733       $params['maxheight'], 
    2734       $params['quality'], 
    2735       $params['automatic_rotation'], 
    2736       true, 
    2737       get_boolean($params['crop']), 
    2738       get_boolean($params['follow_orientation']) 
    2739     ); 
    2740  
    2741     $img->destroy(); 
    2742   } 
    2743   elseif (file_exists($hd_path)) 
    2744   { 
    2745     $img = new pwg_image($hd_path); 
    2746  
    2747     $result = $img->pwg_resize( 
    2748       $image_path, 
    2749       $params['maxwidth'], 
    2750       $params['maxheight'], 
    2751       $params['quality'], 
    2752       $params['automatic_rotation'], 
    2753       false 
    2754       ); 
    2755  
    2756     $img->destroy(); 
    2757  
    2758     if (!empty($image['has_high'])) 
    2759     { 
    2760       $conf['use_exif'] = false; 
    2761       $conf['use_iptc'] = false; 
    2762       update_metadata(array($image['id'] => $image['path'])); 
    2763     } 
    2764   } 
     2705  prepare_directory(dirname($thumb_path)); 
     2706  $img = new pwg_image($image_path, $params['library']); 
     2707 
     2708  $result =  $img->pwg_resize( 
     2709    $thumb_path, 
     2710    $params['maxwidth'], 
     2711    $params['maxheight'], 
     2712    $params['quality'], 
     2713    false, // automatic rotation is not needed for thumbnails. 
     2714    true, // strip metadata 
     2715    get_boolean($params['crop']), 
     2716    get_boolean($params['follow_orientation']) 
     2717  ); 
     2718 
     2719  $img->destroy(); 
     2720  return $result; 
     2721} 
     2722 
     2723function ws_images_resizewebsize($params, &$service) 
     2724{ 
     2725  if (!is_admin()) 
     2726  { 
     2727    return new PwgError(401, 'Access denied'); 
     2728  } 
     2729 
     2730  include_once(PHPWG_ROOT_PATH.'include/functions_picture.inc.php'); 
     2731  include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php'); 
     2732  include_once(PHPWG_ROOT_PATH.'admin/include/image.class.php'); 
     2733 
     2734  $query=' 
     2735SELECT id, path, tn_ext, has_high 
     2736  FROM '.IMAGES_TABLE.' 
     2737  WHERE id = '.(int)$params['image_id'].' 
     2738;'; 
     2739  $image = pwg_db_fetch_assoc(pwg_query($query)); 
     2740 
     2741  if ($image == null) 
     2742  { 
     2743    return new PwgError(403, "image_id not found"); 
     2744  } 
     2745 
     2746  $image_path = $image['path']; 
     2747  $hd_path = get_high_path($image); 
     2748 
     2749  if (empty($image['has_high']) or !file_exists($hd_path) or !is_valid_image_extension(get_extension($image_path))) 
     2750  { 
     2751    return new PwgError(403, "image can't be resized"); 
     2752  } 
     2753 
     2754  $result = false; 
     2755  $img = new pwg_image($hd_path); 
     2756 
     2757  $result = $img->pwg_resize( 
     2758    $image_path, 
     2759    $params['maxwidth'], 
     2760    $params['maxheight'], 
     2761    $params['quality'], 
     2762    $params['automatic_rotation'], 
     2763    false // strip metadata 
     2764    ); 
     2765 
     2766  $img->destroy(); 
     2767 
     2768  global $conf; 
     2769  $conf['use_exif'] = false; 
     2770  $conf['use_iptc'] = false; 
     2771  update_metadata(array($image['id'] => $image['path'])); 
     2772 
    27652773  return $result; 
    27662774} 
Note: See TracChangeset for help on using the changeset viewer.