Esempio n. 1
0
 private static function _process(&$img, $imglib)
 {
     foreach ($img as $image_id => $sizes) {
         if (!isset($imglib[$image_id]['storage']) || empty($imglib[$image_id]['storage'])) {
             continue;
             //未知引擎,无法处理
         }
         if (file_exists(APP_DIR . '/base/lib/storage/' . $imglib[$image_id]['storage'] . '.php') || file_exists(EXTENDS_DIR . '/base/lib/storage/' . $imglib[$image_id]['storage'] . '.php')) {
             $storager_class = 'base_storage_' . $imglib[$image_id]['storage'];
         } else {
             $storager_class = false;
         }
         foreach ($sizes as $i => $item) {
             if ($item[0] && $storager_class) {
                 /**
                  * modifier_process is a static Method
                  */
                 if (method_exists($storager_class, 'modifier_process')) {
                     $url = $storager_class::modifier_process($imglib[$image_id]['url'], $item[0]);
                     $the_url_plus = implode('_', array(substr($imglib[$image_id]['last_modified'], -5), 'OW' . $imglib[$image_id]['width'], 'OH' . $imglib[$image_id]['height']));
                     $the_url = $url && $url != '' ? $url . '?' . $the_url_plus : '';
                     $img[$image_id][$i][0] = $the_url;
                     continue;
                 }
             }
             switch ($item[0]) {
                 case 'xs':
                     $url = $imglib[$image_id]['xs_url'] ? $imglib[$image_id]['xs_url'] : $imglib[$image_id]['url'];
                     break;
                 case 's':
                     $url = $imglib[$image_id]['s_url'] ? $imglib[$image_id]['s_url'] : $imglib[$image_id]['url'];
                     break;
                 case 'm':
                     $url = $imglib[$image_id]['m_url'] ? $imglib[$image_id]['m_url'] : $imglib[$image_id]['url'];
                     break;
                 case 'l':
                     $url = $imglib[$image_id]['l_url'] ? $imglib[$image_id]['l_url'] : $imglib[$image_id]['url'];
                     break;
                 default:
                     $url = $imglib[$image_id]['url'];
                     break;
             }
             if ($url && !strpos($url, '://') && substr($url, 0, 2) != '//') {
                 $resource_host_url = vmc::get_resource_host_url();
                 $url = $resource_host_url . '/' . $url;
             }
             $the_url_plus = substr($imglib[$image_id]['last_modified'], -5) . '_H' . $imglib[$image_id]['height'] . '_W' . $imglib[$image_id]['width'];
             $the_url = $url && $url != '' ? $url . '?' . $the_url_plus : '';
             $img[$image_id][$i][0] = $the_url;
         }
     }
 }