Changeset 25929


Ignore:
Timestamp:
Dec 12, 2013, 11:34:55 AM (10 years ago)
Author:
plg
Message:

feature 2869 added: support TIFF files on web upload (requires ext_imagick)

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/include/functions_upload.inc.php

    r25018 r25929  
    172172
    173173  $file_path = null;
     174  $is_tiff = false;
    174175
    175176  if (isset($image_id))
     
    227228      $file_path.= 'gif';
    228229    }
     230    elseif (IMAGETYPE_TIFF_MM == $type or IMAGETYPE_TIFF_II == $type)
     231    {
     232      $is_tiff = true;
     233      $file_path.= 'tif';
     234    }
    229235    else
    230236    {
     
    244250  }
    245251  @chmod($file_path, 0644);
     252
     253  if ($is_tiff and pwg_image::get_library() == 'ext_imagick')
     254  {
     255    // move the uploaded file to pwg_representative sub-directory
     256    $representative_file_path = dirname($file_path).'/pwg_representative/';
     257    $representative_file_path.= get_filename_wo_extension(basename($file_path)).'.';
     258
     259    $representative_ext = $conf['tiff_representative_ext'];
     260    $representative_file_path.= $representative_ext;
     261
     262    prepare_directory(dirname($representative_file_path));
     263   
     264    $exec = $conf['ext_imagick_dir'].'convert';
     265
     266    if ('jpg' == $conf['tiff_representative_ext'])
     267    {
     268      $exec .= ' -quality 98';
     269    }
     270   
     271    $exec .= ' "'.realpath($file_path).'"';
     272
     273    $dest = pathinfo($representative_file_path);
     274    $exec .= ' "'.realpath($dest['dirname']).'/'.$dest['basename'].'"';
     275   
     276    $exec .= ' 2>&1';
     277    @exec($exec, $returnarray);
     278
     279    // sometimes ImageMagick creates file-0.jpg (full size) + file-1.jpg
     280    // (thumbnail). I don't know how to avoid it.
     281    $representative_file_abspath = realpath($dest['dirname']).'/'.$dest['basename'];
     282    if (!file_exists($representative_file_abspath))
     283    {
     284      $first_file_abspath = preg_replace(
     285        '/\.'.$representative_ext.'$/',
     286        '-0.'.$representative_ext,
     287        $representative_file_abspath
     288        );
     289     
     290      if (file_exists($first_file_abspath))
     291      {
     292        rename($first_file_abspath, $representative_file_abspath);
     293      }
     294    }
     295  }
    246296
    247297  if (pwg_image::get_library() != 'gd')
     
    319369    {
    320370      $insert['level'] = $level;
     371    }
     372
     373    if (isset($representative_ext))
     374    {
     375      $insert['representative_ext'] = $representative_ext;
    321376    }
    322377
  • trunk/admin/include/photos_add_direct_prepare.inc.php

    r25593 r25929  
    145145
    146146$upload_file_types = 'jpeg, png, gif';
     147
     148if (pwg_image::get_library() == 'ext_imagick')
     149{
     150  $upload_file_types.= ', tiff';
     151  $template->assign('tif_enabled', true);
     152}
     153
    147154if ('html' == $upload_mode)
    148155{
  • trunk/admin/themes/default/template/photos_add_direct.tpl

    r25005 r25929  
    128128    'multi'          : true,
    129129    'fileTypeDesc'   : 'Photo files',
    130     'fileTypeExts'   : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF',
     130    'fileTypeExts'   : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF;{/literal}{if $tif_enabled}*.tif;*.TIF;*.tiff;*.TIFF{/if}{literal}',
    131131    'fileSizeLimit'  : sizeLimit,
    132132    'progressData'   : 'percentage',
  • trunk/include/config_default.inc.php

    r25372 r25929  
    797797$conf['inheritance_by_default'] = false;
    798798
     799// 'png' or 'jpg': your uploaded TIF photos will have a representative in
     800// JPEG or PNG file format
     801$conf['tiff_representative_ext'] = 'png';
    799802?>
Note: See TracChangeset for help on using the changeset viewer.