This commit is contained in:
@@ -33,6 +33,108 @@ class Common
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 서버상의 위치를 웹상의 위치로 변경한다...
|
||||
|
||||
Reference in New Issue
Block a user