예시 1
코드 복사 코드는 다음과 같습니다.
Header("Content-type: image/png") /*이미지를 브라우저에 알립니다. 출력됨*/
$im = imagecreate(400, 300); /*이미지 크기 정의*/
$gray = ImageColorAllocate($im, 235, 235, 235)
$pink = ImageColorAllocate($im, 255, 128 , 255);
$fontfile = "simkai.ttf";
/* $fontfile 글꼴 경로는 운영 체제에 따라 simhei.ttf(검은색 몸체)일 수 있습니다. , SIMKAI.TTF(기울임꼴), SIMFANG .TTF(송 왕조 모방), SIMSUN.TTC(송 왕조 및 신송 왕조) 및 GD에서 지원하는 기타 중국어 글꼴*/
$str = iconv('GB2312',' UTF-8','중국어 워터마크'); /*gb2312 문자 세트를 UTF-8 문자로 변환합니다*/
ImageTTFText($im, 30, 0, 100, 200, $pink, $fontfile, $str) ;
/* 중국어 워터마크 추가*/
ImageDestroy($im)
?>
코드 복사 다음과 같습니다:
/ /********************************** ****** //
// 기능: 이미지에 텍스트 추가
// 매개 변수: $img 이미지 파일 이름
// $new_img 이미지 파일 이름을 저장합니다. 비어 있으면 저장하지 않음을 의미합니다. 이미지 저장
// $text 문자열 내용
// text_size 문자열 크기
// text_angle 글꼴 문자열 출력 각도
// text_x 문자열 출력 x 좌표
// text_y 문자열 출력 y 좌표
// $text_font 글꼴 파일명
// $r,$g,$b 문자열 색상 RGB 값
// ****************** *********** *********** //
함수 img_text($img, $new_img, $text, $text_size, $text_angle, $text_x, $text_y , $text_font, $r, $g, $ b){
$text=iconv("gb2312","UTF-8",$text)
Header("콘텐츠 유형: image/gif" );
$im = @imagecreatefromstring( file_get_contents($img)) 또는 die ("이미지를 열지 못했습니다!")
$color = ImageColorAllocate($im, $r,$g,$b);
//ImageTTFText(int im, int size , int angle, int x, int y, int col, stringfontfile, string text):
//이 함수는 이미지에 TTF(TrueType Fonts) 글꼴 텍스트를 씁니다. .
//매개변수: size는 글꼴의 크기입니다.
// angle은 글꼴의 각도로, 시계 방향으로 계산됩니다. 0도는 가로(왼쪽에서 오른쪽으로), 90도는 아래쪽에서 텍스트입니다. top ;
// 두 매개변수 x와 y는 텍스트의 좌표 값입니다(원점은 왼쪽 상단입니다).
// col은 텍스트의 색상입니다. Fontfile은 글꼴 파일의 이름입니다.
/ /text는 문자열 내용입니다.
ImageTTFText($im, $text_size, $text_angle, $text_x, $text_y, $color, $text_font, $text)
if ($new_img==""):
ImageGif($im ); // 이미지를 저장하지 않고 표시만 합니다.
ImageGif($im,$new_img) // 이미지를 저장하지만 표시하지 않습니다.
ImageDestroy; ($im); / /그래픽 종료 및 메모리 공간 해제
}
?>
예제 3
코드 복사
/*
* 기능 : PHP 이미지 워터마크 (워터마크는 이미지 또는 텍스트를 지원합니다.)
* 매개변수:
* $groundImage 배경 이미지, 즉 워터마크가 필요한 이미지는 현재 GIF만 지원합니다. , JPG, PNG 형식;
* $waterPos 워터마크 위치, 10가지 상태가 있으며 0은 임의의 위치입니다.
* 1은 왼쪽 상단, 2는 상단 중앙, 3은 오른쪽 상단입니다. 중앙 왼쪽, 5 중앙 중앙, 6 중앙 오른쪽
* 7은 왼쪽 하단, 8은 중앙 하단, 9는 오른쪽 하단을 의미합니다.
* $waterImage 이미지 워터마크; , 워터마크로 사용된 이미지는 현재 GIF, JPG 및 PNG 형식만 지원합니다.
* $waterText 텍스트 워터마크, 즉 텍스트가 워터마크로 사용되며, ASCII 코드를 지원하고, 중국어를 지원하지 않습니다.
* $textFont 텍스트 크기, 값은 1, 2, 3, 4 또는 5이며 기본값은 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=””,$ textFont=5,$textColor=”#FF0000″)
{
$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])//워터마크 이미지 형식 가져오기
{
case 1:$water_im = imagecreatefromgif($waterImage);break
case 2:$water_im = imagecreatefromjpeg($ waterImage) ;break;
case 3:$water_im = imagecreatefrompng($waterImage);break
default:die($formatMsg)
}
}
//배경 이미지 읽기
if(!emptyempty($groundImage) && file_exists($groundImage))
{
$ground_info = getimagesize($groundImage)
$ground_w = $ground_info[0];//배경 가져오기 image Width
$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("워터마킹해야 할 사진이 없습니다!")
}
//워터마크 위치
if($isWaterImage)//사진 워터마크
{
$w = $water_w;
$h = $water_h
$label = "picture";
}
else//텍스트 워터마크
{
$temp = imagettfbbox(ceil($textFont*5),0,”./cour.ttf”,$waterText);//가져오기 트루타입 글꼴을 사용하는 텍스트 범위
$w = $temp[2] - $temp[6]
$h = $temp[3] - $temp[7]
unset($temp); ;
$label = "텍스트 영역";
}
if( ($ground_w<$w) || ($ground_h<$h) )
{
echo " 워터마크가 필요한 이미지의 너비 비율 워터마크 ".$label."이 너무 작아서 워터마크를 생성할 수 없습니다! ";
return;
}
switch($waterPos)
{
case 0://random
$posX = rand(0,($ground_w - $w)) ;
$posY = rand(0,($ground_h - $h));
break
케이스 1://1은 왼쪽 상단
$posY; = 0;
break;
case 2://2는 상단 중앙에 있습니다.
$posX = ($ground_w - $w) / 2
$posY = 0;
case 3://3은 오른쪽 상단을 의미합니다.
$posY = 0
break
case 4://4는 가운데 왼쪽을 의미합니다. 🎜>$posX = 0;
$posY = ($ground_h - $h) / 2
break
case 5://5가 중앙에 위치함
$posX = ($ ground_w - $w) / 2;
$posY = ($ground_h - $h) / 2
break
case 6://6이 오른쪽
$posX = $ground_w - $ w; $posY = ($ground_h - $h) / 2;
break
왼쪽 하단
$posX = 0; $posY = $ground_h - $h;
break;
case 8://8은 하단 중앙에 위치합니다.
$posX = ($ground_w - $w) / 2; - $ h;
case 9://9는 오른쪽 하단
$ground_w - $w
$posY = $ground_h - $h;
default://random
$posX = rand(0,($ground_w - $w))
$posY = rand(0,($ground_h - $h))
break ;
}
//이미지의 색상 혼합 모드 설정
imagealphablending($ground_im, true)
if($isWaterImage)//이미지 워터마크
{
imagecopy( $ground_im , $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//워터마크를 대상 파일에 복사
}
else//텍스트 워터마크
{
if( !emptyempty($textColor) && (strlen($textColor)==7) )
{
$R = hexdec(substr($textColor,1,2))
$G = hexdec(substr( $textColor,3,2))
$B = hexdec(substr($textColor,5))
}
else
{
die("워터마크 텍스트 색상 형식이 잘못되었습니다! ”);
}
imagestring( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B))
}
//워터마크 이미지 생성
@unlink($groundImage)
switch($ground_info[2])//배경 이미지 형식 가져오기
{
case 1:imagegif($ground_im, $groundImage);break;
케이스 2:imagejpeg($ground_im,$groundImage);break
케이스 3:imagepng($ground_im,$groundImage);break
default:die($errorMsg) ;
}
//메모리 해제
if(isset($water_info)) unset($water_info)
if(isset($water_im)) imagedestroy($water_im); ($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))
($i=0;$i<$id;$i++){
if(isset($_FILES) && !emptyempty($_FILES['userfile']) && $_FILES['userfile']['size']>0)
{
$uploadfile = “./” .time().”_”.$_FILES['사용자 파일'][이름][$i];
에코 “
”;
echo $uploadfile;
if (copy($_FILES['userfile']['tmp_name'][$i], $uploadfile))
{
echo “확인
”;
//文字水印
//imageWaterMark($uploadfile,5,”",”HTTP://www.lvye.info”,5,”#cccccc“); 🎜>$waterImage=”logo_ok1.gif”;//WaterMark($uploadfile,9,$waterImage);
echo “";
}
else
{
echo "실패
";
}
}
}
}
?>