시하님의 팁을 바탕으로 언샵마스크 기능을 추가하였습니다.
사용법은 기존과 동일하며
$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);
등과 같이 사용할수 있습니다.
언샵마스크란 포토샵 과 같은 이미지 툴에서
색상의 경계선간의 차이를 명확하게 하여
전체적으로 사진이 선명하게 보이도록 하는 역활을 뜻하는 것 같습니다.
댓글 11개
Terrorboy
13년 전
팬1호입니다~
13년 전
/*
이름 : 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이상의 양의 정수, 패딩의 크기는 워터마크이미지의 너비나 높이보다 클수 없음
*/
이름 : 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이상의 양의 정수, 패딩의 크기는 워터마크이미지의 너비나 높이보다 클수 없음
*/
13년 전
감사합니다 창화님^^
덕분에 세로기준 중간 크롭도 사용할 수 있어서 매우 흡족합니다.
잘 사용하겠습니다 ^^
제가 창화님께 추천해드린 언샵마스크 값이
$options['unsharpmask_amount'] = 100;
$options['unsharpmask_radius'] = 1;
$options['unsharpmask_threshold'] = 2;
위와 같은데 이것에 대해 짧게 부연 설명을 드리자면
사진찍는 분들이 포토샵에서 가장 흔하게 사용하는 언샵마스크 값이 100.1.2 입니다.
흔히 "배길리"라고 말하는데요...
큰 이미지를 크롭하거나 리사이즈 한 후에
amount :100 / radius : 1 / threshols : 2 의 값으로 사용합니다.
[http://sir.co.kr/data/cheditor4/1202/ab33ef458a0ccd5639fb807976b8d1ea_aXz38VwxEf4cSOX6.gif]
이 값의 변화를 알고 싶으면 포토샵을 연 후에 filter > UnsharpMask 를 이용해 보세요.
덕분에 세로기준 중간 크롭도 사용할 수 있어서 매우 흡족합니다.
잘 사용하겠습니다 ^^
제가 창화님께 추천해드린 언샵마스크 값이
$options['unsharpmask_amount'] = 100;
$options['unsharpmask_radius'] = 1;
$options['unsharpmask_threshold'] = 2;
위와 같은데 이것에 대해 짧게 부연 설명을 드리자면
사진찍는 분들이 포토샵에서 가장 흔하게 사용하는 언샵마스크 값이 100.1.2 입니다.
흔히 "배길리"라고 말하는데요...
큰 이미지를 크롭하거나 리사이즈 한 후에
amount :100 / radius : 1 / threshols : 2 의 값으로 사용합니다.
[http://sir.co.kr/data/cheditor4/1202/ab33ef458a0ccd5639fb807976b8d1ea_aXz38VwxEf4cSOX6.gif]
이 값의 변화를 알고 싶으면 포토샵을 연 후에 filter > UnsharpMask 를 이용해 보세요.
13년 전
좋은 코멘트 감사합니다.
morning
13년 전
감사합니다.
옵션유형별 순서도 아래가 기본인가요?
------------
//기본값 설정
$save_quality = 70;//저장 품질 : 70 %
$save_force = 2;//저장형태 : 파일 덮어씌움
$unsharpmask_use = 1;//언샵마스크 사용여부
$unsharpmask_amount = 100;
$unsharpmask_radius = 1;
$unsharpmask_threshold = 2;
$crop_use = 0;//크롭 사용여부
$crop_pos_width = 2;//너비 기준 크롭시 중앙을 기준
$crop_pos_height = 1;//높이 기준 크롭시 상단을 기준
$watermark_path_file = '';//워터마크로 사용할 파일 경로 : 없음
$watermark_pos = 4;//워터마크 찍는 위치 : 하단 오른쪽
$watermark_sharpness = 30;//워터마크 이미지의 선명도 : 30 %
$watermark_padding = 10;//원본과 워터마크 사이의 여백 : 10px
옵션유형별 순서도 아래가 기본인가요?
------------
//기본값 설정
$save_quality = 70;//저장 품질 : 70 %
$save_force = 2;//저장형태 : 파일 덮어씌움
$unsharpmask_use = 1;//언샵마스크 사용여부
$unsharpmask_amount = 100;
$unsharpmask_radius = 1;
$unsharpmask_threshold = 2;
$crop_use = 0;//크롭 사용여부
$crop_pos_width = 2;//너비 기준 크롭시 중앙을 기준
$crop_pos_height = 1;//높이 기준 크롭시 상단을 기준
$watermark_path_file = '';//워터마크로 사용할 파일 경로 : 없음
$watermark_pos = 4;//워터마크 찍는 위치 : 하단 오른쪽
$watermark_sharpness = 30;//워터마크 이미지의 선명도 : 30 %
$watermark_padding = 10;//원본과 워터마크 사이의 여백 : 10px
13년 전
네 그것이 제가 잡아놓은 기본값입니다.
그런데 많이 쓰는 형태로 옵션은 바꿔도 상관없습니다.
그런데 많이 쓰는 형태로 옵션은 바꿔도 상관없습니다.
13년 전
감사합니다 ^^ 추천날리구 가요!!
morning
13년 전
echo $GLOBALS['errormsg']; 를 추가로 출력해보면
"740365499_bFTE6ZoD_000_0021.jpg은 파일이 아닙니다." 라고 뜹니다.
어디를 손봐야하는가요?
http://ongga.com/bbs/board.php?bo_table=morningwebU3_Zn&page=0
링크입니다.
-------------
if (!is_file($path_save_file)) {
foreach($list[$i]['file'] as $k => $v) {
if (preg_match("`\.(gif|jpe?g|png)$`i", $v[source])) {
if (create_thumbnail($v['file'], $path_save_file, $save_w, $save_h, $options)){
$list[$i]['thumbnail'] = $path_save_file;
break;
}
}
}
if (empty($list[$i]['thumbnail']) && !empty($list[$i]['wr_content']) && preg_match("`src\s*=([^>]+\.(gif|jp?g|png))('|\"|\s|>)`iU", $list[$i]['wr_content'], $m)) {
$m[1] = preg_replace("`[\s\"']+`", '', $m[1]);
if (!empty($m[1])) {
if (create_thumbnail($m[1], $path_save_file, $save_w, $save_h, $options)){
$list[$i]['thumbnail'] = $path_save_file;
}
}
}
}
else {
$list[$i]['thumbnail'] = $path_save_file;
}
"740365499_bFTE6ZoD_000_0021.jpg은 파일이 아닙니다." 라고 뜹니다.
어디를 손봐야하는가요?
http://ongga.com/bbs/board.php?bo_table=morningwebU3_Zn&page=0
링크입니다.
-------------
if (!is_file($path_save_file)) {
foreach($list[$i]['file'] as $k => $v) {
if (preg_match("`\.(gif|jpe?g|png)$`i", $v[source])) {
if (create_thumbnail($v['file'], $path_save_file, $save_w, $save_h, $options)){
$list[$i]['thumbnail'] = $path_save_file;
break;
}
}
}
if (empty($list[$i]['thumbnail']) && !empty($list[$i]['wr_content']) && preg_match("`src\s*=([^>]+\.(gif|jp?g|png))('|\"|\s|>)`iU", $list[$i]['wr_content'], $m)) {
$m[1] = preg_replace("`[\s\"']+`", '', $m[1]);
if (!empty($m[1])) {
if (create_thumbnail($m[1], $path_save_file, $save_w, $save_h, $options)){
$list[$i]['thumbnail'] = $path_save_file;
}
}
}
}
else {
$list[$i]['thumbnail'] = $path_save_file;
}
13년 전
음
if (create_thumbnail($v['file'], $path_save_file, $save_w, $save_h, $options)){
이거를
if (create_thumbnail($g4['path'] . '/data/file/' . $bo_table . '/' . $v['file'], $path_save_file, $save_w, $save_h, $options)){
이렇게 바꾸면 되겟네요.
if (create_thumbnail($v['file'], $path_save_file, $save_w, $save_h, $options)){
이거를
if (create_thumbnail($g4['path'] . '/data/file/' . $bo_table . '/' . $v['file'], $path_save_file, $save_w, $save_h, $options)){
이렇게 바꾸면 되겟네요.
morning
13년 전
ㅎㅎㅎ
이번에는 한번 클릭에 와르르르 쏟아집니다...
괴렵혀드려서 죄송했습니다.
메일답글 안주셔도 됩니다.
이번에는 한번 클릭에 와르르르 쏟아집니다...
괴렵혀드려서 죄송했습니다.
메일답글 안주셔도 됩니다.
13년 전
안녕하세요? 완전 생초보입니다.
지금 설치하려고 하는데, 아직 완성을 잘못해서..,가장 초보적인 질문을 드리겠습니다.
37줄 부터 시작되는 ($path_file) 경로에 대해서 실제 경로를 입력해 주어야 되는지요? 아니면 그냥 놔두어도 되는지 문의 드립니다.~^^
지금 설치하려고 하는데, 아직 완성을 잘못해서..,가장 초보적인 질문을 드리겠습니다.
37줄 부터 시작되는 ($path_file) 경로에 대해서 실제 경로를 입력해 주어야 되는지요? 아니면 그냥 놔두어도 되는지 문의 드립니다.~^^
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 7830 | 10년 전 | 463 | ||
| 7829 |
|
10년 전 | 649 | |
| 7828 | 10년 전 | 575 | ||
| 7827 | 10년 전 | 477 | ||
| 7826 | 10년 전 | 499 | ||
| 7825 | 10년 전 | 531 | ||
| 7824 | 10년 전 | 489 | ||
| 7823 | 10년 전 | 432 | ||
| 7822 | 10년 전 | 406 | ||
| 7821 | 10년 전 | 350 | ||
| 7820 | 10년 전 | 370 | ||
| 7819 |
|
10년 전 | 771 | |
| 7818 | 10년 전 | 430 | ||
| 7817 | 10년 전 | 609 | ||
| 7816 | 10년 전 | 448 | ||
| 7815 | 10년 전 | 645 | ||
| 7814 | 10년 전 | 480 | ||
| 7813 | 10년 전 | 434 | ||
| 7812 | 10년 전 | 444 | ||
| 7811 | 10년 전 | 420 | ||
| 7810 | 10년 전 | 625 | ||
| 7809 | 10년 전 | 556 | ||
| 7808 | 10년 전 | 435 | ||
| 7807 | 10년 전 | 446 | ||
| 7806 |
프로그래머7
|
10년 전 | 1365 | |
| 7805 | 10년 전 | 1311 | ||
| 7804 |
zahir1312
|
10년 전 | 805 | |
| 7803 |
|
10년 전 | 1407 | |
| 7802 | 10년 전 | 510 | ||
| 7801 | 10년 전 | 885 | ||
| 7800 | 10년 전 | 1112 | ||
| 7799 | 10년 전 | 594 | ||
| 7798 | 10년 전 | 541 | ||
| 7797 | 10년 전 | 563 | ||
| 7796 | 10년 전 | 400 | ||
| 7795 | 10년 전 | 551 | ||
| 7794 | 10년 전 | 593 | ||
| 7793 | 10년 전 | 1094 | ||
| 7792 | 10년 전 | 520 | ||
| 7791 | 10년 전 | 612 | ||
| 7790 | 10년 전 | 538 | ||
| 7789 |
fbastore
|
10년 전 | 1490 | |
| 7788 | 10년 전 | 594 | ||
| 7787 | 10년 전 | 450 | ||
| 7786 | 10년 전 | 657 | ||
| 7785 | 10년 전 | 631 | ||
| 7784 | 10년 전 | 695 | ||
| 7783 | 10년 전 | 513 | ||
| 7782 | 10년 전 | 541 | ||
| 7781 | 10년 전 | 938 | ||
| 7780 | 10년 전 | 849 | ||
| 7779 | 10년 전 | 800 | ||
| 7778 | 10년 전 | 393 | ||
| 7777 | 10년 전 | 506 | ||
| 7776 | 10년 전 | 502 | ||
| 7775 | 10년 전 | 437 | ||
| 7774 | 10년 전 | 648 | ||
| 7773 | 10년 전 | 405 | ||
| 7772 | 10년 전 | 780 | ||
| 7771 | 10년 전 | 437 | ||
| 7770 | 10년 전 | 674 | ||
| 7769 | 10년 전 | 435 | ||
| 7768 | 10년 전 | 656 | ||
| 7767 | 10년 전 | 1209 | ||
| 7766 | 10년 전 | 539 | ||
| 7765 | 10년 전 | 600 | ||
| 7764 |
잘살아보자
|
10년 전 | 455 | |
| 7763 |
|
10년 전 | 1506 | |
| 7762 |
Tosea
|
10년 전 | 1089 | |
| 7761 | 10년 전 | 693 | ||
| 7760 |
잘살아보자
|
10년 전 | 765 | |
| 7759 |
잘살아보자
|
10년 전 | 607 | |
| 7758 |
잘살아보자
|
10년 전 | 660 | |
| 7757 | 10년 전 | 1294 | ||
| 7756 |
ITBANK
|
10년 전 | 1291 | |
| 7755 | 10년 전 | 1945 | ||
| 7754 | 10년 전 | 1106 | ||
| 7753 | 10년 전 | 923 | ||
| 7752 | 10년 전 | 1427 | ||
| 7751 |
잘살아보자
|
10년 전 | 582 | |
| 7750 |
잘살아보자
|
10년 전 | 510 | |
| 7749 |
잘살아보자
|
10년 전 | 539 | |
| 7748 |
잘살아보자
|
10년 전 | 563 | |
| 7747 |
잘살아보자
|
10년 전 | 640 | |
| 7746 |
잘살아보자
|
10년 전 | 703 | |
| 7745 |
잘살아보자
|
10년 전 | 951 | |
| 7744 |
잘살아보자
|
10년 전 | 443 | |
| 7743 | 10년 전 | 973 | ||
| 7742 |
starbros
|
10년 전 | 868 | |
| 7741 |
잘살아보자
|
10년 전 | 710 | |
| 7740 |
잘살아보자
|
10년 전 | 600 | |
| 7739 |
잘살아보자
|
10년 전 | 488 | |
| 7738 |
잘살아보자
|
10년 전 | 565 | |
| 7737 |
잘살아보자
|
10년 전 | 544 | |
| 7736 |
잘살아보자
|
10년 전 | 564 | |
| 7735 |
잘살아보자
|
10년 전 | 901 | |
| 7734 |
잘살아보자
|
10년 전 | 456 | |
| 7733 |
잘살아보자
|
10년 전 | 566 | |
| 7732 |
잘살아보자
|
10년 전 | 731 | |
| 7731 |
잘살아보자
|
10년 전 | 656 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기