코드 복사 코드는 다음과 같습니다.
/*
* 기능: 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;