PHP 함수중에 이미지 처리하는 함수를 알아보겠습니다.
개발중에 이미지 처리하는 부분도 상당히 중요한 것 같습니다.
나름대로 정리를 했는데 잘 되었는지 모르겠습니다.
PHP 이미지 함수 정리(매뉴얼 참조)
resource imagecreate(int $width, int $height) : 인자값으로 받은 사이즈로 빈 이미지를 생성한다.
인자값 : width(가로), height(세로)
int imagecolorallocate( resource $image , int $red , int $green , int $blue ) : 주어진 이미지에 사용될 RGB값을 지정한다.
인자값 : image(imagecreate로 생성된 이미지), red(0~255), green(0~255), blue(0~255)
int imagecolortransparent ( resource $image [, int $color ] ) : 주어진 이미지에 투명 색상을 지정한다.
인자값 : image(imagecreate로 생성된 이미지), color(imagecolorallocate 등의 함수로 생성된 칼라 값)
bool imagefill ( resource $image , int $x , int $y , int $color ) : 주어진 좌표위치부터 주어진 색상으로 주어진 이미지를 채운다.
인자값 : image(imagecreate로 생성된 이미지), x(이미지의 x좌표), y(이미지의 y좌표), color(imagecolorallocate 등의 함수로 생성된 칼라 값)
resource imagecreatefromgif ( string $filename ) : 주어진 gif파일 경로 혹은 URL로부터 새로운 이미지를 생성한다.
인자값 : filename(gif 파일경로 혹은 gif url경로)
bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h ) : 이미지를 복사한다.
인자값 : dst_im(생성하고자 하는 이미지), src_im(카피할 이미지), dst_x(생성하고자 하는 x위치), dst_y(생성하고자 하는 y위치), src_x(카피이미지 x위치), src_y(카피이미지 y위치), src_w(카피이미지 가로길이), src_h(카피이미지 세로길이)
int imageinterlace ( resource $image [, int $interlace = 0 ] ) : 주어진 이미지에 라인, arc등의 삽입여부를 설정한다.
인자값 : image(imagecreate로 생성된 이미지), interlace(삽입여부->0 : 삽입안함, 1 : 삽입)
bool imagejpeg ( resource $image [, string $filename [, int $quality ]] ) : jpeg파일로 저장한다.
인자값 : image(imagecreate로 생성된 이미지), filename(jpeg로 저장될 전체경로, 지정안할시 바로 보여줌), quality(설정안할시 75%정도임)
bool imagedestroy ( resource $image ) : 생성된 이미지 객체를 메모리에서 해제한다.
인자값 : image(imagecreate로 생성된 이미지)
작은 이미지(30X30) 2개를 한개의 이미지로 합치는 예제
--------------test.php--------------------------------------------------------
<img src="./img_copy.php" width="60" height="60" /> //이미지를 합치는 페이지 설정
--------------img_copy.php------------------------------------------------------
<?php
//헤더선언
header("Expires: Mon, 26 Jul 1997 05:00:00 /GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-type: image/jpg");
$img1="./images/img1.gif; //30X30이미지(카피하고자 하는 이미지1)
$img2="./images/img2.gif; //30X30이미지(카피하고자 하는 이미지2)
$dst_img = ImageCreate(60, 60); //두개의 이미지를 카피할 수 있는 영역의 이미지 생성
$gray=ImageColorAllocate($dst_img,234,234,234); //색상지정
$white=ImageColorAllocate($dst_img,255,255,255); //색상지정
ImageColorTransparent($dst_img,$white); //투명색 지정
ImageFill($dst_img, 0, 0, $white);
$src_img1 = ImageCreateFromGIF($img1);
$src_img2 = ImageCreateFromGIF($img2);
ImageCopy($dst_img,$src_img1,0,0,0,0,30,30); //이미지 카피
ImageCopy($dst_img,$src_img2,30,0,0,0,30,30); //이미지 카피
ImageInterlace($dst_img, 0);
ImageJPEG($dst_img); //JPG 이미지로 표출됨
ImageDestroy($dst_img); //메모리 해제
?>
위와 같은 식으로 구현하면 test.php에서 합쳐진 이미지가 보이게 됩니다.
많은 도움이 되었으면 합니다.
'찬의 공부방 > PHP Tip' 카테고리의 다른 글
[PHP simple_html_dom관련] 웹페이지 크롤링 예제 (0) | 2019.04.12 |
---|---|
[PHP Framwork 강좌1] 개발환경 셋팅(APMSETUP 설치) (2) | 2012.02.14 |
PHP에서 이미지 저장하는 방법(copy함수 사용) (1) | 2012.02.14 |
[PHP] 시간 관련 함수 (0) | 2012.02.06 |
[PHP-MYSQL함수] php에서 사용되는 mysql 관련 함수 정리 (0) | 2012.02.05 |