CHThumbnail PHP Extension Module

작성자: 나창호
회사: chcode.com
버전: $Revision: 1.0 $
고친날: $Date: 2003/09/27 02:17:21 $

CHCode CHThumbnail: 사용자 메뉴얼

목차
1. 소개
2. 설치
2.1. 압축 파일 풀기
2.2. 동적라이브러리 복사하기
2.3. makethumbnail.ch 파일 복사하기
3. 사용법
4. 함수
4.1. inputImage()
4.2. ouputImage()
4.3. makeThumbnail()
4.4. qualityFactor()
4.5. addEdge()
4.6. addDropshadow()
4.7. thumbnailBgcolor()
5. 예제
6. 버그
7. 다운로드
8. 라이센스

1. 소개 
CHThumbnail 확장 모듈은 손쉽게 설치하여 사용할 수 있는 C 언어로 개발된 강력한 Thumbnail 이미지 프로세싱 모듈입니다.
그림자와 그에 관련된 옵션, 경계선, 배경색 등의 효과를 줄 수 있습니다.
2. 설치 
CHThumbnail은 현재 리눅스만을 지원합니다. 설치는 root 권한이 있어야 합니다.
Unix 또는 FreeBSD 상에서도 실행하는 데는 문제가 없을 거라 생각되지만, 현재는 시험해 보지 않아 확신할 수 없습니다.

2.1. 압축 파일 풀기
2.2. 동적라이브러리 복사하기
2.3. makethumbnail.ch 파일 복사하기

2.1. 압축 파일 풀기 
다운로드 받은 chthumbnail.tar.gz 압축 파일을 임의의 디렉토리로 복사한 다음, 아래 명령을 이용하여 chthumbnail.tar.gz 압축 파일을 풉니다.

# gunzip chthumbnail.tar.gz
# tar xvf chthumbnail.tar

2.2. 동적 라이브러리 복사하기 
modules 디렉토리에 있는 chtemplate.so 동적라이브러리 파일을 PHP 확장 모듈 디렉토리로 복사합니다.

# cp chthumbnail/modules/chthumbnail.so [php_ext_dir]

PHP 확장 디렉토리 [php_ext_dir] 가 어디에 있는지 모를 경우.
웹 페이지를 하나 만든 다음 아래 코드를 넣고, 웹 브라우저를 통해 봅니다.
<?php echo phpinfo() ?>
"extension_dir" 변수를 통해 PHP 확장 모듈 디렉토리의 경로를 알 수 있습니다.

배포한 chthumbnail.so 동적 라이브러리는 레드헷 리눅스 9.0에서 컴파일한 것입니다. 만약, 여러분의 리룩스 시스템에서 작동하지 않을 경우 아래 명령을 통해 다시 컴파일해 주셔야합니다.

# cd chthumbnail/src
# phpize
# ./configure --with-php-config=/path/to/php-config
# make install

성공적으로 작업이 끝나면 modules 디렉토리에 새로운 chthumbnail.so 파일이 생성되고, PHP 확장 모듈 디렉토리에 자동으로 chthumbnail.so 파일이 복사됩니다.
2.3. makethumbnail.ch 파일 복사하기 
makethumbnail.ch 스크립트는 perl 코드로 작성된 것입니다. makethumbnail.ch 파일을 현재 실행 중인 여러분의 php 파일이 있는 디렉토리로 복사하여 주십시요.
makethumbnail.ch 파일이 실행될 수 있도록 퍼미션을 조정하여 줍니다.

# chmod 755 makethumbnail.ch

makethumbnail.ch 스크립트는 chthumbnail.so 동적 라이브러리가 실행시키게 됩니다.
3. 사용법 
CHThumbnail은 .png, .gif, .jpep 형식만을 thumbnail 이미지로 변환합니다. thumbnail 이미지는 jpeg 이미지 유형으로 만들어집니다.
  1. chthumbnail.php 클래스 파일 지정: include("chthumbnail.php");
  2. CHThumbnail 오브젝트 생성: $thumb = new CHThumbnail();
  3. 원본 이미지 설정: $thumb->inputImage("/path/to/my_image.gif", "gif");
  4. 썸네일 이미지 설정: $thumb->outputImage("/path/to/my_image.jpg", 200);
  5. 썸네일 이미지 생성: $thumb->makeThumbnail();

4. 함수 

완성된 예제 이미지



4.1. inputImage()
4.2. ouputImage()
4.3. makeThumbnail()
4.4. qualityFactor()
4.5. addEdge()
4.6. addDropshadow()
4.7. thumbnailBgcolor()

4.1. inputImage() 
원본 이미지를 지정합니다. 사용할 수 있는 이미지 유형은 gif, png, jpeg입니다.
$thumb->inputImage($path, $format);
$path: 원본이미지의 절대경로입니다.
$format: 원본 이미지의 유형입니다.

Ex: $thumb->inputImage('/home/images/my_image.jpg', 'jpeg');
4.2. outputImage() 
만들어질 thumbnail 이미지 정보를 설정합니다.
참고: 이미지가 만들어질 디렉토리는 웹에서 파일 쓰기가 가능하도록 퍼미션을 조정하셔야 합니다.
가령, '/home/thumbnail/' 이라는 디렉토리에 이미지를 만들거라면 이 디렉토리의 퍼미션은 읽기/쓰기/실행이 모두 가능해야합니다.

chmod 777 /home/thumbnail/
$thumb->outputImage($path, $width);
$path: 만들어질 thumbnail 이미지의 절대경로입니다.
$width: thumbnail 이미지의 가로폭 픽셀값입니다. 세로폭은 자동으로 원본 이미지의 비율에 맞추어 조정됩니다.

Ex: $thumb->outputImage('/home/images/my_image.jpg', 240);
4.3. makeThumbnail() 
Thumbnail 이미지를 완성합니다.
$thumb->makeThumbnail();
리턴값: 없음
4.4. qualityFactor() 
만들어질 thumbnail 이미지의 퀄리티를 설정합니다. 설정하지 않을 경우 '75'가 기본적으로 지정됩니다. 이 값을 높이면 퀄리티는 좋아지지만, jpeg 파일 크기는 상대적으로 커집니다.
$thumb->qualityFactor($quality);
$auality: 0 ~ 100 사이의 숫자 또는 문자열
4.5. addEdge() 
Thumbnail 이미지의 테두리 선을 만듭니다.
$thumb->addEdge($width, $color);
$width: 선의 두께를 저정합니다. 숫자 또는 문자열
$color: 선의 색상값을 지정합니다.

Ex: $thumb->addEdge(2, '#336699');
4.6. addDropshadow() 
Thumbnail 이미지의 그림자를 만듭니다.
$thumb->addDropshadow($blur, $color, $offset);
$blur: 그림자의 흐림 정도를 지정합니다.
$color: 그림자 색상 값을 지정합니다.
$offset: 그림자 옵셋 값을 지정합니다.

Ex: $thumb->addDropshadow(3, '#999999', 5);
4.7. thumbnailBgcolor() 
Thumbnail 이미지의 배경색을 지정합니다.
$thumb->thumbnailBgcolor($color);
$width: 배경색 지정

Ex: $thumb->thumbnailBgcolor('#336699');
5. 예제 
<?php
include("chthumbnail.php");

$thumb = new CHThumbnail();
$thumb->inputImage('/home/www/images/my_image.jpg', 'jpeg');
$thumb->outputImage('/home/www/thumbnail/my_image.jpg', 240);
$thumb->addEdge(1, '#000000');
$thumb->addDropshadow(2, '#cccccc', 3);
$thumb->makeThumbnail();

echo '<img src="http://domain.com/thumbnail/my_image.jpg">';

?>

6. 버그 
만약, 버그를 찾았거나, 문제점이 있으면 chna@chcode.com 으로 연락주십시요. 빠른 시간안에 패치 또는 수정에 대한 답변을 드리도록 하겠습니다.
7. 다운로드 
다운로드
8. 라이센스 
GPL을 따르며 소스 코드의 수정, 배포 등을 자유롭게 할 수 있습니다.