PHP 컴 파일 러 동적 이미지 생 성

제3자 라 이브 러 리 파일 을 설치 하고 기하학 적 지식 이 있 으 면 PHP 를 이용 하여 그림 을 만 들 고 처리 할 수 있 습 니 다.PHP 를 이용 하여 동적 이미 지 를 만 드 는 것 은 상당히 쉬 운 일이 다.다음은 어떻게 실현 되 는 지 상세 하 게 소개 한다.기본 이미지 생 성 함 수 를 사용 하기 전에 GD 라 이브 러 리 파일 을 설치 해 야 합 니 다.JPEG 와 관련 된 이미지 생 성 함 수 를 사용 하려 면 jpeg-6b 를 설치 해 야 하 며,그림 에 Type 1 형 글꼴 을 사용 하려 면 t1lib 를 설치 해 야 합 니 다.그림 생 성 환경 을 만 들 기 전에 준비 작업 이 필요 합 니 다.우선 t1lib 를 설치 하고 jpeg-6b 를 설치 한 다음 GD 라 이브 러 리 파일 을 설치 합 니 다.설치 할 때 는 반드시 여기에 주어진 순서에 따라 설치 해 야 합 니 다.GD 를 컴 파일 하여 입고 할 때 jpeg-6b 를 사용 하기 때문에 jpeg-6b 를 설치 하지 않 으 면 컴 파일 할 때 오류 가 발생 할 수 있 습 니 다.이 세 개의 구성 요 소 를 설치 한 후에 PHP 를 다시 설정 해 야 합 니 다.이것 도 DSO 방식 으로 PHP 를 설치 한 것 을 다행 으로 생각 하 는 부분 중 하나 입 니 다.make clean 을 실행 한 다음 현재 설정 에 다음 내용 을 추가 합 니 다.--with-gd=[/path/to/gd]--with-jpeg-dir=[/path/to/jpeg-6b]--with-t1lib=[/path/to/t1lib]추 가 를 마치 고 make 명령 을 실행 한 다음 make install 명령 을 실행 하고 Apache 를 다시 시작 한 후 phopinfo()를 실행 하여 새 설정 이 적용 되 었 는 지 확인 합 니 다.이제 우 리 는 이미지 생 성 작업 을 시작 할 수 있 습 니 다.설 치 된 GD 라 이브 러 리 파일 의 버 전에 따라 GIF 나 PNG 형식의 그래 픽 파일 을 만 들 수 있 는 지 여 부 를 결정 합 니 다.gd-1.6 또는 이전 버 전이 설치 되 어 있 으 면 GIF 형식의 파일 을 사용 할 수 있 으 나 PNG 형식 을 만 들 수 없고 gd-1.6 이후 버 전이 설치 되 어 있 으 면 PNG 파일 을 만 들 수 있 으 나 GIF 형식의 파일 을 만 들 수 없다.간단 한 그림 을 만 드 는 데 도 많은 함수 가 필요 합 니 다.우 리 는 한 걸음 한 걸음 설명 할 것 입 니 다.아래 의 예 에서 저 희 는 PNG 형식의 이미지 파일 을 만 들 것 입 니 다.아래 코드 는 만 든 이미 지 를 포함 하 는 MIME 형식의 머리 입 니 다.<?header ("Content-type: image/png");ImageCreate()를 사용 하여 빈 그림 을 나타 내 는 변 수 를 만 듭 니 다.이 함 수 는 픽 셀 단위 의 그림 크기 의 인 자 를 요구 합 니 다.그 형식 은 ImageCreate(xsize, y_size)。크기 가 250 인 것 을 만 들 려 면×250 의 그림 은 다음 문 구 를 사용 할 수 있 습 니 다:$newImg=ImageCreate(250,250);그림 이 비어 있 기 때문에 컬러 로 채 우 고 싶 을 수도 있 습 니 다.먼저 ImageColorAllocate()함 수 를 사용 하여 RGB 값 으로 이름 을 지정 해 야 합 니 다.이 함수 의 형식 은 ImageColorAllocate([image],[red],[green],[blue])입 니 다.하늘색 을 정의 하려 면 다음 과 같은 문 구 를 사용 할 수 있 습 니 다.$skyblue=ImageColorAllocate($newImg,136,193,255);다음은 ImageFill()함 수 를 사용 하여 이 그림 을 이 색 으로 채 워 야 합 니 다.ImageFill()함 수 는 ImageFillRectangle(),ImageFillPolygon()등 몇 가지 버 전이 있 습 니 다.간단하게 말하자면,우 리 는 다음 과 같은 형식 으로 ImageFill()함 수 를 사용 합 니 다.ImageFill([image],[start x point],[start y point],[color])ImageFill($newImg,0,0,$skyblue);마지막 으로 그림 을 만 든 후 그림 핸들 과 사용 하 는 메모리:ImagePNG($newImg)를 방출 합 니 다.  ImageDestroy($newImg); ?>이렇게 하면 그림 을 만 드 는 모든 코드 는 다음 과 같다.<?header ("Content-type: image/png");  $newImg = ImageCreate(250,250);  $skyblue = ImageColorAllocate($newImg,136,193,255);  ImageFill($newImg,0,0,$skyblue);  ImagePNG($newImg);  ImageDestroy($newImg);  ?>이 스 크 립 트 파일 을 skyblue.php 로 저장 하고 브 라 우 저 로 접근 하면 하늘색 250 을 볼 수 있 습 니 다.×250 개의 PNG 형식의 그림 입 니 다.우 리 는 또한 이미지 생 성 함 수 를 사용 하여 그림 을 처리 할 수 있 습 니 다.예 를 들 어 큰 그림 을 작은 그림 으로 만 들 수 있 습 니 다.그림 이 있다 고 가정 하고 그 중에서 35 를 자 르 려 고 합 니 다.×35 크기 의 그림 입 니 다.당신 이 해 야 할 일 은 35 를 만 드 는 것 입 니 다.×35 크기 의 빈 그림 을 만 들 고 원래 그림 을 포함 하 는 그림 흐름 을 만 든 다음 크기 조정 을 거 친 원래 그림 을 새 빈 그림 에 넣 습 니 다.이 작업 을 수행 하 는 관건 적 인 함 수 는 ImageCopyResized()입 니 다.이 작업 의 형식 은 다음 과 같 습 니 다.ImageCopyResized([new image handle],[original image handle],[new image X],[new image Y],[original image Y],[new image X],[original image X],[original image Y],[original image Y]).  <? /*브 라 우 저 에 이 파일 에 포 함 된 콘 텐 츠 형식*/header("Content-type:image/png")를 알 릴 수 있 도록 머리 를 보 냅 니 다./*새 그림 의 높이 와 너 비 를 저장 하 는 변 수 를 만 듭 니 다*/$newWidth=35;  $newHeight = 35;/*주어진 높이 와 너비 의 새로운 빈 그림 만 들 기*/$newImg=ImageCreate($newWidth,$newHeight);/*원래 큰 그림 에서 데 이 터 를 얻 습 니 다*/$origImg=ImageCreate FromPNG("test.png");/*크기 를 조정 한 그림 을 복사 하여 ImageSX(),ImageSY()를 사용 하여 원래 의 그림 이 X,Y 에 있 는 크기*/ImageCopyResized($new Img,$origImg,0,0,0,0,0,$new Width,$new Height,ImageSX($origImg),ImageSY($origImg)를 얻 습 니 다./*원 하 는 그림 을 만 들 고 메모리*/ImagePNG($newImg)를 방출 합 니 다.  ImageDestroy($newImg); ?>이 스 크 립 트 를 resized.php 로 저장 하고 브 라 우 저 로 접근 하면 35 가 보 입 니 다.×35 크기 의 PNG 형식의 그림 입 니 다.새 디 넷-중국 컴퓨터 신문

좋은 웹페이지 즐겨찾기