PHP & Others

썸네일 만드는 함수(원격이미지포함, 리사이즈, 크롭, 워터마크)

페이지 정보

본문

$options = Array();
$options['unsharpmask_use'] = 0;//사용안함

create_thumbnail('http://apmusers.com/tt/attach/1/1267047665.jpg', 'a.png', 50, 0, $options);

$options = Array();
$options['unsharpmask_use'] = 1;//사용함
$options['unsharpmask_amount'] = 100;
$options['unsharpmask_radius'] = 1;
$options['unsharpmask_threshold'] = 2;

create_thumbnail('http://apmusers.com/tt/attach/1/1267047665.jpg', 'b.png', 50, 0, $options);

등과 같이 사용할수 있습니다.


언샵마스크란 포토샵 과 같은 이미지 툴에서
색상의 경계선간의 차이를 명확하게 하여
전체적으로 사진이 선명하게 보이도록 하는 역활을 뜻하는 것 같습니다.

/* 
이름 : create_thumbnail 

용도 : 원본을 조건에 따라 리사이즈, 크롭, 워터마크를 처리하여 파일로 저장함 

성공시 리턴값 : true 

실패시 리턴값 : false 

인자 : 
==> $path_src_file_or_url : 원본파일의 절대경로 또는 상대경로 또는 주소 
==> $path_save_file : 썸네일을 저장할 절대경로 또는 상대경로 
==> $save_w : 만들 썸네일의 너비 
==> $save_h : 만들 썸네일의 높이, 생략 가능하며 생략시 기본값은 0 
==> $options : 함수 내부에 정의된 변수들의 값을 변경할때 사용, 배열형태, 생략가능하며 생략시 기본값은 빈배열(Array()) 
                                ==> $options['save_quality'] : 파일로 저장시 저장될 파일의 품질, 100 이하의 양의 정수만 사용, gif는 의미 없음 
                                ==> $options['save_force'] : 이미 동일한 경로에 동일이름의 파일이 존재할때의 처리 결정 
                                                                                                                        0 이면 false 반환, 1 이면 더이상 실행안하고 true 반환, 2 이면 기존거는 지우고 새로 저장 
                                ==> $options['unsharpmask_use'] : 언샵마스크 사용 여부, 0 은 사용안함, 1은 사용함 
                                ==> $options['unsharpmask_amount'] : 샤픈은 명과 암부의 색상이 변화되어 경계면이 강조되어 보이도록 하는 것으로 경계면에서의 명암 대비를 강화하는 정도 % 
                                                                                        1 에서 500 사이의 정수만 사용가능 
                                ==> $options['unsharpmask_radius'] : 경계면의 강조되는 범위를 말하는 것으로 작게할 수록 경계면에서 샤픈을 위한 명암이 강조 범위가 좁아짐 
                                                                                    즉, 강조되는 경계면이 얇아짐. 
                                                                                    0.5 에서 50 사이의 정수와 소수 사용가능 
                                ==> $options['unsharpmask_threshold'] : 설정된 수준 이상의 명암차가 있는 경계만 강조됨. 
                                                                                        예를들어 10으로 설정할 경우 경계면의 명암차가 10 이상 나지 않는 경계면은 강조하지 않음. 
                                                                                        너무 높게할 경우 대부분은 샤픈되지 않음. 가장 낮게 할 경우 모든 경계면이 강조됨. 

                                ==> $options['crop_use'] : 크롭 사용 여부, 0 은 사용안함, 1은 사용함 
                                ==> $options['crop_pos_width'] : 너비 기준으로 크롭할때 기준부위 결정, 1은 왼쪽, 2는 가운데, 3은 오른쪽 
                                ==> $options['crop_pos_height'] : 높이 기준으로 크롭할때 기준부위 결정, 1은 상단, 2는 중단, 3은 하단 
                                ==> $options['watermark_path_file'] : 워터마크 이미지 파일의 절대경로 또는 상대경로 
                                ==> $options['watermark_pos'] : 워터마크 찍는 위치 결정, 1 은 상단 왼쪽, 2는 상단 오른쪽, 3은 하단 왼쪽, 4는 하단 오른쪽, 5는 중앙, 10 은 전체에 반복 
                                ==> $options['watermark_sharpness'] : 워터마크의 선명도, 100 이하의 양의 정수만 사용 
                                                                                                                                        ==> 100 일경우에는 투명이미지 사용가능 
                                ==> $options['watermark_padding'] : 워터마크의 여백, 0이상의 양의 정수, 패딩의 크기는 워터마크이미지의 너비나 높이보다 클수 없음 
*/


$options['unsharpmask_amount'] = 100; 
$options['unsharpmask_radius'] = 1; 
$options['unsharpmask_threshold'] = 2; 
위와 같은데 이것에 대해 짧게 부연 설명을 드리자면 

사진찍는 분들이 포토샵에서 가장 흔하게 사용하는 언샵마스크 값이 100.1.2 입니다. 
흔히 "배길리"라고 말하는데요... 
큰 이미지를 크롭하거나 리사이즈 한 후에 
amount :100 / radius : 1 / threshols : 2 의 값으로 사용합니다. 


sys_get_temp_dir 를 쓸수 없는 환경일때

if ( !function_exists('sys_get_temp_dir')) {
    function sys_get_temp_dir() {
        if( $temp=getenv('TMP') ) return $temp;
        if( $temp=getenv('TEMP') ) return $temp;
        if( $temp=getenv('TMPDIR') ) return $temp;
        $temp=tempnam(__FILE__,'');
        if (file_exists($temp)) {
            unlink($temp);
            return dirname($temp);
        }
        return null;
    }
}
 
 
 
 
함수 젤 상단에 위에 함수를 정의 하는 부분을 넣어주시면 됩니다.

관련자료

등록된 댓글이 없습니다.
Today's proverb
성공의 보장은 없지만 시도조차 하지 않는 건 실패를 보장하는 길이다. 남들이 하는 방식으론 세계 제일이 될 수 없다. (jungim)