이미지에 워터마크를 추가하는 데 사용되는 워터마크 PHP 클래스
코드 복사 코드는 다음과 같습니다.
/*
* 기능: 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;
위 내용은 워터마킹을 포함하여 사진에 워터마크를 추가하는 데 사용되는 워터마킹 PHP 클래스를 소개한 내용입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alipay PHP ...

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

세션 납치는 다음 단계를 통해 달성 할 수 있습니다. 1. 세션 ID를 얻으십시오. 2. 세션 ID 사용, 3. 세션을 활성 상태로 유지하십시오. PHP에서 세션 납치를 방지하는 방법에는 다음이 포함됩니다. 1. 세션 _regenerate_id () 함수를 사용하여 세션 ID를 재생산합니다. 2. 데이터베이스를 통해 세션 데이터를 저장하십시오.
