이게 모든 페이지의 파라메터를 동적으로 할당하는 것이다. $base_uri .= make_query_string($parameters); if (empty($num_links)) $num_links = 10; $config['base_url'] = $base_uri; $config['total_rows'] = $total_rows; $config['cur_page'] = $cur_page; $config['per_page'] = $per_page; $config['num_links'] = $num_links; // 페이지의 갯수가 일정하게 보이도록.... $config['full_tag_open'] = ''; $CI =& get_instance(); $CI->load->library('pagination'); $CI->pagination->initialize($config); $pagination = $CI->pagination->create_links(); return $pagination; } /** * 워터마킹하기 */ public function watermarking($imagePath, $watermark_info, $wmText, $cpid, $key = '') { $CI =& get_instance(); $CI->load->library('upload'); $wmImagePath = ''; // 워터마크 이미지의 경로 $wmSpaceHeihgt = 0; // 워터마크 이미지 하단 공백 $wmFont = ''; // 워터마크 텍스트(글꼴) $wmFontSize = 13; // 워터마크 텍스트(글꼴) 크기 $wmTextHeight = 17; // 워터마크 텍스트의 높이 $wmTextColor = '#FFFFFF'; // 워터마크 텍스트의 칼라 $wmTextAlpha = 0.5; // 워터마크 텍스트 투명도 try { // $img = new Imagick($imagePath); $img = new \Imagick(); $img->readImageBlob($imagePath); $hImg = $img->getImageHeight(); $wImg = $img->getImageWidth(); foreach ($watermark_info as $watermark) { if (strtolower($watermark['cpid']) == strtolower($cpid)) { $img_w_min = intval($watermark['img_width_min']); $img_w_max = intval($watermark['img_width_max']); if (($img_w_min <= $wImg) and ($img_w_max >= $wImg)) { $wmImagePath = $watermark['wm_img_path']; $wmSpaceHeihgt = $watermark['wm_space']; $wmFont = $watermark['text_font']; $wmFontSize = intval($watermark['text_size']); $wmTextHeight = intval($watermark['text_pixel']); $wmTextColor = $watermark['text_color']; $wmTextAlpha = $watermark['text_opacity'] / 100; break; } } } if (empty($wmImagePath)) return; if (substr($wmImagePath, 0, 1) == '/') { $wmImagePath = substr($wmImagePath, 1); } // echo FCPATH.$wmImagePath; $wm = new Imagick(FCPATH . $wmImagePath); $hWm = $wm->getImageHeight(); $wWm = $wm->getImageWidth(); $wmImgLeft = floor(($wImg - $wWm) / 2); $wmImgTop = floor(($hImg - $hWm - $wmSpaceHeihgt - $wmTextHeight) / 2); // 워터마크 이미지의 위치 top $wmTxtTop = $wmImgTop + $hWm + $wmSpaceHeihgt + ($wmTextHeight * 0.6); // 워터마크 텍스트의 위치 $img->compositeImage($wm, imagick::COMPOSITE_OVER, $wmImgLeft, $wmImgTop, imagick::ALIGN_CENTER); $wm->destroy(); $draw = new \ImagickDraw(); $wmFont = BASEPATH . 'fonts/' . $wmFont; $draw->setFont($wmFont); $draw->setFontSize($wmFontSize); $draw->setFillColor(new ImagickPixel($wmTextColor)); // $draw->setFillAlpha( $wmTextAlpha ); $draw->setFillOpacity($wmTextAlpha); // 워터마크 텍스트 투명도 설정 $draw->setTextAlignment(2); // center $draw->setStrokeAntialias(1); $draw->setStrokeWidth(1); $draw->setStrokeColor(new ImagickPixel('#000000')); // $draw->setStrokeAlpha(0.1); $draw->setStrokeOpacity(0.1); $draw->annotation($wImg / 2, $wmTxtTop, $wmText); $img->drawImage($draw); $draw->destroy(); // $img->writeImage(); $watermark_img = $img->getImageBlob(); $CI->upload->upload_object_storage_imagick($key, $watermark_img); $img->destroy(); // $object_upload = $this->upload->upload_object_storage($imagePath , $imagePath , 'data'); } catch (Exception $e) { echo $e->getMessage(); } } /** * 서버상의 위치를 웹상의 위치로 변경한다... */ public function realpath_to_webpath($realpath) { $arrImagePath = array( '/home/confirms/test-admin.confirms.co.kr/upload/', '/home/confirms/upload/', '/home/www/admin.confirms.co.kr/upload/', '/home/www/upload/', '/image/confirms_upload/', '/misc/image/confirms_upload/', '/storage/web/admin.confirms.co.kr/src/upload/', '/storage/web/admin.confirms.co.kr/upload/', $_SERVER['DOCUMENT_ROOT'] . '/upload/', ); $return_path = str_replace($arrImagePath, '/upload/', $realpath); $return_path = str_replace(' ', '', $return_path); return $return_path; } }