Пример #1
0
 /**
  * サムネイル画像作成
  *
  * @param $target_file サムネイル作成元 画像ファイルパス
  * @param $save_mode  保存するモード ('PROFILE' or 'DIARY' or 'BBS' or 'FOLDER')
  */
 function make_thumbnail($target_file, $save_mode)
 {
     // システム設定グループ名
     //$system_config_group = '画像ファイル';
     $system_config_group = ACSMsg::get_mst('system_config_group', 'D04');
     // 画像サイズを取得
     $default_width_max = "";
     $default_height_max = "";
     $thumb_width_max = "";
     $thumb_height_max = "";
     $rss_width_max = "";
     $rss_height_max = "";
     switch ($save_mode) {
         case 'PROFILE':
             $default_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'PROFILE_IMAGE_WIDTH_MAX');
             $default_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'PROFILE_IMAGE_HEIGHT_MAX');
             $thumb_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'PROFILE_IMAGE_THUMB_WIDTH_MAX');
             $thumb_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'PROFILE_IMAGE_THUMB_HEIGHT_MAX');
             break;
         case 'DIARY':
             $default_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'DIARY_IMAGE_WIDTH_MAX');
             $default_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'DIARY_IMAGE_HEIGHT_MAX');
             $thumb_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'DIARY_IMAGE_THUMB_WIDTH_MAX');
             $thumb_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'DIARY_IMAGE_THUMB_HEIGHT_MAX');
             break;
         case 'BBS':
             $default_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'BBS_IMAGE_WIDTH_MAX');
             $default_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'BBS_IMAGE_HEIGHT_MAX');
             $thumb_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'BBS_IMAGE_THUMB_WIDTH_MAX');
             $thumb_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'BBS_IMAGE_THUMB_HEIGHT_MAX');
             $rss_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'BBS_IMAGE_RSS_WIDTH_MAX');
             $rss_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'BBS_IMAGE_RSS_HEIGHT_MAX');
             break;
         case 'FOLDER':
             $thumb_width_max = ACSSystemConfig::get_keyword_value($system_config_group, 'FOLDER_IMAGE_THUMB_WIDTH_MAX');
             $thumb_height_max = ACSSystemConfig::get_keyword_value($system_config_group, 'FOLDER_IMAGE_THUMB_HEIGHT_MAX');
             break;
         default:
             return false;
     }
     // サムネイル画像作成
     // ImageMagick
     $image_obj = new ACSImageMagickWrapper($target_file);
     if (!$image_obj) {
         return false;
     }
     // 最大サイズより大きい場合は縮小する
     //	フォルダの場合は制限なし
     if ($save_mode != 'FOLDER') {
         $new_image_name = $image_obj->reduce_image($default_width_max, $default_height_max);
     }
     // サムネイル作成
     $new_thumb_name = $image_obj->make_jpg_thumbnail(ACS_FOLDER_DIR . $this->get_thumbnail_server_file_name(), $thumb_width_max, $thumb_height_max);
     // RSS フィード用
     //	BBS の場合は、RSS用ファイルを作成
     if ($save_mode == 'BBS') {
         $rss_server_file_name = $this->get_rss_save_file_name($this->get_owner_community_id(), $this->get_file_id());
         $new_thumb_name = $image_obj->make_jpg_thumbnail(ACS_FOLDER_DIR . $rss_server_file_name, $rss_width_max, $rss_height_max);
         $this->set_rss_server_file_name($rss_server_file_name);
     }
     return true;
 }
 /**
  * 指定サイズ以下のサイズに縮小する
  *
  * @param $max_width  最大横幅
  * @param $max_height 最大縦幅
  */
 function reduce_image($max_width = ACS_THUMBNAIL_WIDTH, $max_height = ACS_THUMBNAIL_HEIGHT)
 {
     if ($this->width > $max_width || $this->height > $max_height) {
         ACSImageMagickWrapper::convert($this->file_name, '', $max_width, $max_height);
     }
 }