// 需要等待生成 while (file_exists($processing_flag)) { if (time() - $starttime > $wait_timeout) { // 超时 exit; } usleep(300000); // sleep 300 ms } if (file_exists($dest)) { // 图片生成成功 ob_clean(); header('content-type:' . mime_content_type($dest)); exit(file_get_contents($dest)); } else { exit; // 生成失败退出 } } // 创建缩略图 $obj = new PicThumb($logfile); $obj->set_config($config); $create_flag = $obj->create_thumb($source, $dest); unlink($processing_flag); // 删除处理中标记文件 if ($create_flag) { // 判断是否生成成功 ob_clean(); header('content-type:' . mime_content_type($dest)); exit(file_get_contents($dest)); }
$watermark = ROOT . '/pic/watermark.png'; // 按比例生成缩略图 $param = array('type' => 'fit', 'width' => 100, 'height' => 100); $obj = new PicThumb($logfile); $obj->set_config($param); $flag = $obj->create_thumb($source1, $dest1); if ($flag) { echo '<img src="pic/' . basename($dest1) . '">'; } else { echo 'create thumb fail'; } // 按比例生成缩略图,不足部分用#FF0000填充 $param = array('type' => 'fit', 'width' => 100, 'height' => 100, 'bgcolor' => '#FFFF00'); $obj = new PicThumb($logfile); $obj->set_config($param); $flag = $obj->create_thumb($source1, $dest2); if ($flag) { echo '<img src="pic/' . basename($dest2) . '">'; } else { echo 'create thumb fail'; } // 裁剪250x250的缩略图,裁剪位置是底部中间,水印位置西南,透明度50 $param = array('type' => 'crop', 'croppos' => 'BM', 'width' => 250, 'height' => 250, 'watermark' => $watermark, 'opacity' => 50, 'gravity' => 'SouthWest'); $obj = new PicThumb($logfile); $obj->set_config($param); $flag = $obj->create_thumb($source1, $dest3); if ($flag) { echo '<img src="pic/' . basename($dest3) . '">'; } else { echo 'create thumb fail'; }