기본 이미지 생성 기능을 사용하기 전 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를 다시 시작한 후 phpinfo()를 실행하여 확인합니다. 설정이 적용되었는지 여부가 새로워졌습니다. 이제 이미지 생성 작업을 시작할 수 있습니다.
설치된 GD 라이브러리 파일의 버전에 따라 GIF 또는 PNG 형식의 그래픽 파일을 생성할 수 있는지 여부가 결정됩니다. gd-1.6 이하 버전을 설치하면 GIF 형식 파일은 사용할 수 있지만, PNG 파일은 생성할 수 없습니다. gd-1.6 이상 버전을 설치하면 PNG 파일은 생성 가능하지만 GIF 형식 파일은 생성할 수 없습니다.
간단한 이미지를 만들려면 많은 기능을 사용해야 하는데, 이에 대해 단계별로 설명하겠습니다.
다음 예에서는 PNG 형식의 이미지 파일을 생성합니다. 다음 코드는 생성된 이미지의 MIME 유형을 포함하는 헤더입니다.
<? header ("Content-type: image/png");
ImageCreate()를 사용하면 생성됩니다. 빈 이미지를 나타내는 변수입니다. 이 함수에는 이미지 크기(픽셀) 매개변수가 필요합니다. 형식은 ImageCreate(x_size, 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); ?>
In 이렇게 하면 이미지를 생성하는 전체 코드는 다음과 같습니다.
<? 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 빈 이미지를 만들고 원본 이미지가 포함된 이미지 스트림을 만든 다음 원본 이미지의 크기가 조정된 버전을 새 빈 이미지에 배치하는 것뿐입니다.
이 작업을 완료하는 주요 함수는 ImageCopyResize()이며, 여기에는 다음 형식이 필요합니다: ImageCopyReized([새 이미지 핸들],[원본 이미지 핸들],[새 이미지 X], [새 이미지 Y], [원본 이미지 X], [원본 이미지 Y], [새 이미지 X], [새 이미지 Y], [원본 이미지 X], [원본 이미지 Y]).
<? /*发送一个头部,以便让浏览器知道该文件所包含的内容类型*/ header("Content-type: image/png"); /*建立保存新图像高度和宽度的变量*/ $newWidth = 35; $newHeight = 35; /*建立给定高度和宽度的新的空白图像*/ $newImg = ImageCreate($newWidth,$newHeight); /*从原来较大的图像中得到数据*/ $origImg = ImageCreateFromPNG("test.png"); /*拷贝调整大小后的图像,使用ImageSX()、ImageSY()得到原来的图像在X、Y方面上的大小*/ ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg)); /*创建希望得到的图像,释放内存*/ ImagePNG($newImg); ImageDestroy($newImg); ?>
이 작은 스크립트를 resize.php로 저장한 후 브라우저로 접속하면 35×35 PNG 형식의 이미지를 볼 수 있습니다.