>  기사  >  백엔드 개발  >  이미지에 워터마크를 추가하는 데 사용되는 워터마크 PHP 클래스

이미지에 워터마크를 추가하는 데 사용되는 워터마크 PHP 클래스

WBOY
WBOY원래의
2016-07-29 08:37:46912검색

코드 복사 코드는 다음과 같습니다.


/*
* 기능: PHP 이미지 워터마크(워터마크는 그림이나 텍스트를 지원합니다)
* 매개변수:
* $groundImage 배경 이미지, 즉 워터마킹 사진은 현재 GIF, JPG, PNG 형식만 지원합니다.
* $waterPos 워터마크 위치, 10가지 상태가 있으며 0은 임의 위치입니다.
* 1은 왼쪽 상단, 2는 상단 중앙, 3은 상단입니다. 중앙 오른쪽
* 4는 왼쪽 중앙, 5는 중앙 중앙, 6은 오른쪽 중앙, 7은 왼쪽 하단, 8은 중앙 하단입니다. 오른쪽 하단 waterImage 워터마크로 사용되는 사진인 이미지 워터마크는 현재 GIF, JPG, PNG 형식만 지원합니다.
* $waterText 텍스트를 워터마크로 사용하는 텍스트 워터마크는 ASCII 코드를 지원합니다. 중국어를 지원하지 않습니다.
* $textFont 텍스트 크기, 값은 1, 2, 3, 4 또는 5입니다.
* $textColor 텍스트 색상, 값은 16진수 색상 값입니다. #FF0000(빨간색)입니다.
*
* 참고: GD 2.0 지원, FreeType 지원, GIF 읽기, GIF 생성, JPG, PNG
* $waterImage 및 $waterText를 사용하지 않는 것이 가장 좋습니다. 동시에 그 중 하나를 선택하고 먼저 $waterImage를 사용하세요.​ ​
* ​​$waterImage가 유효한 경우 $waterString, $stringFont 및 $stringColor 매개변수는 유효하지 않습니다. ​
* ​ 워터마크가 적용된 이미지의 파일명은 $groundImage와 동일합니다.
* 작성자: longware @ 2004-11-3 14:15:13
*/
함수 imageWaterMark($groundImage,$waterPos=0,$waterImage=”",$waterText=””,$ textF
{
$isWaterImage = FALSE;
$formatMsg = "이 파일 형식은 아직 지원되지 않습니다. 이미지 처리 소프트웨어를 사용하여 이미지를 GIF, JPG 또는 PNG 형식으로 변환하세요.";
//워터마크 파일 읽기
if(!emptyempty($waterImage) && file_exists($waterImage))
{ $isWaterImage = TRUE;
$water_info = getimagesize($ waterImage);
$water_w = $water_info[0];//워터마크 이미지 너비 가져오기
$water_h = $water_info[1];//워터마크 이미지 높이 가져오기
switch($water_info[2 ])//워터마크 이미지 형식 가져오기                                                                                                        🎜> 사례 3: $ Water_im = ImageCreateFrompng ($ Waterimage)
기본: DIE ($ Formatmsg)
}
}>
// $ GROUNDIMAGE) && FILE_EXISTS ($ GROUNDIMAGE)
{
$ GROUND_INFO = GetImageSize ($ GROUNDIMAGE); nd_info [0] // 배경 그림의 너비를 가져옵니다.
$ GROUND_H = $ground_info[ 1];//배경 이미지 높이 가져오기
switch($ground_info[2])//배경 이미지 형식 가져오기
{
사례 1:$ground_im = imagecreatefromgif($groundImage) ;break;
케이스 2:$ground_im = imagecreatefromjpeg($groundImage);break
케이스 3:$ground_im = imagecreatefrompng($groundImage);break
default:die($formatMsg)
}  

else 
 { 
die("워터마킹해야 할 사진이 존재하지 않습니다! ”);  
}                                   
$label = "Image";
}
else//Text watermark
{ ,$waterText);//TrueType 글꼴을 사용하여 텍스트 범위 가져오기 
 $w = $temp[2] - $temp[6]; 
 $h = $temp[3] - $temp[7] ;
unset($temp)
$label = " 텍스트 영역";
}
if( ($ground_w<$w) || ($ground_h<$h) )
{ 
 echo "필요한 이미지의 길이 또는 너비 watermarked는 워터마크 ".$label."보다 작으므로 워터마크를 생성할 수 없습니다!";
return;
스위치($waterPos)
{
케이스 0://random w)) ;
$posY = rand(0,($ground_h - $h)) ;
break;
케이스 1://1이 왼쪽 상단
$posY = 0
케이스 2://2; -centered         break;           🎜> 사례 3://3은 오른쪽 상단
$posX = $ground_w - $w;
$posY = 0
사례 4:/ /4는 왼쪽에 있습니다
$posX = 0;
$posY = ($ground_h - $h) / 2
break
case 5://5는 중앙에 있습니다. 🎜> $posX = ($ground_w - $ w)/2; $ posy = ($ GROUND_H-$ h)/2
Break
사례 6: // 6이 오른쪽
$ POSX = $ Ground_w-$ $ $ w;
$posY = ($ground_h - $h) / 2
break
왼쪽 하단이 7://7입니다. > $posX = 0;
        $posY = $ground_h - $h;
break
케이스 8://8은 하단 중앙에 있음
$posX = ($ground_w - $w) / 2 ;
$posY = $ground_h - $ h;
break
케이스 9://9는 오른쪽 하단
$posX = $ground_w - $w; $ground_h - $h;
break;
default://random
$posX = rand(0,($ground_w - $w))
$posY = rand(0,($ ground_h - $h)); 휴식 ;  
 }
//이미지의 색상 혼합 모드를 설정합니다.
imagealphablending($ground_im, true)
if($isWaterImage)//Image watermark.
{ posX, $posY, 0, 0 , $water_w,$water_h);//워터마크를 대상 파일에 복사                                                                         && (strlen($textColor)==7) > (substr($textColor,5));
else }
else
die("워터마크 텍스트 색상 형식이 잘못되었습니다!”);                                           //워터마킹 후 이미지 생성                                                                                                                 $groundImage);break;
사례 2:imagejpeg($ground_im,$groundImage);
사례 3:imagepng($ ground_im,$groundImage);break;
default:die($errorMsg) ; 
 } 
//메모리 해제 
if(isset($water_info)) unset($water_info); 
if(isset($water_im)) imagedestroy($water_im); 
unset ($ground_info);
imagedestroy($ground_im);
}
//—————————————— ——————— —— 
$id=$_REQUEST['id']; 
$num = count($_FILES['userfile']['name']);
print_r( $_FILES['userfile'] );
print_r($_FILES['userfile']['name'])
echo $num;
echo
if (isset($id)) { 
for($i=0;$i<$id;$i ){ 
if(isset($_FILES) && !emptyempty($_FILES['userfile']) && $_FILES['userfile' ]['size']>0) 
{ 
$uploadfile = “./”.time().”_”.$_FILES['userfile'][이름] [$i]; 
echo "
";
echo $uploadfile
if (copy($_FILES['userfile']['tmp_name'][$i], $uploadfile) )
{
echo “OK
”;
//텍스트 워터마크
//imageWaterMark($uploadfile,5,"","HTTP://www.lvye.info", 5,"#cccccc") ;
//이미지 워터마크
$waterImage=”logo_ok1.gif”;//워터마크 이미지 경로
imageWaterMark($uploadfile,9,$waterImage)
echo “";                                                          🎜> } 

?& gt; 

 
for($a=0; $a<$id;$a ){
echo “파일: <입력 이름="사용자 파일[ ]” type="file">
";
}
?>



위 내용은 워터마킹을 포함하여 사진에 워터마크를 추가하는 데 사용되는 워터마킹 PHP 클래스를 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.