시하님의 팁을 바탕으로 언샵마스크 기능을 추가하였습니다.
사용법은 기존과 동일하며
$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) 경로에 대해서 실제 경로를 입력해 주어야 되는지요? 아니면 그냥 놔두어도 되는지 문의 드립니다.~^^
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 7930 | 9년 전 | 372 | ||
| 7929 | 9년 전 | 264 | ||
| 7928 | 9년 전 | 375 | ||
| 7927 | 9년 전 | 299 | ||
| 7926 | 9년 전 | 644 | ||
| 7925 | 9년 전 | 313 | ||
| 7924 | 9년 전 | 287 | ||
| 7923 | 9년 전 | 323 | ||
| 7922 | 9년 전 | 344 | ||
| 7921 | 9년 전 | 375 | ||
| 7920 | 9년 전 | 296 | ||
| 7919 | 9년 전 | 312 | ||
| 7918 | 9년 전 | 475 | ||
| 7917 | 9년 전 | 316 | ||
| 7916 | 9년 전 | 384 | ||
| 7915 | 9년 전 | 369 | ||
| 7914 | 9년 전 | 380 | ||
| 7913 | 9년 전 | 506 | ||
| 7912 | 9년 전 | 381 | ||
| 7911 | 9년 전 | 332 | ||
| 7910 | 9년 전 | 361 | ||
| 7909 | 9년 전 | 471 | ||
| 7908 | 9년 전 | 370 | ||
| 7907 | 9년 전 | 322 | ||
| 7906 | 9년 전 | 336 | ||
| 7905 | 9년 전 | 329 | ||
| 7904 | 9년 전 | 297 | ||
| 7903 | 9년 전 | 297 | ||
| 7902 | 9년 전 | 514 | ||
| 7901 |
|
9년 전 | 716 | |
| 7900 | 9년 전 | 539 | ||
| 7899 | 9년 전 | 348 | ||
| 7898 | 9년 전 | 339 | ||
| 7897 | 9년 전 | 297 | ||
| 7896 | 9년 전 | 317 | ||
| 7895 | 9년 전 | 425 | ||
| 7894 | 9년 전 | 347 | ||
| 7893 | 9년 전 | 279 | ||
| 7892 | 9년 전 | 326 | ||
| 7891 | 9년 전 | 710 | ||
| 7890 | 9년 전 | 1176 | ||
| 7889 | 9년 전 | 732 | ||
| 7888 |
limsy1987
|
9년 전 | 530 | |
| 7887 | 9년 전 | 501 | ||
| 7886 | 9년 전 | 390 | ||
| 7885 | 9년 전 | 361 | ||
| 7884 | 9년 전 | 370 | ||
| 7883 | 9년 전 | 354 | ||
| 7882 | 9년 전 | 365 | ||
| 7881 | 9년 전 | 397 | ||
| 7880 | 9년 전 | 519 | ||
| 7879 | 9년 전 | 415 | ||
| 7878 | 9년 전 | 1158 | ||
| 7877 | 9년 전 | 707 | ||
| 7876 | 9년 전 | 437 | ||
| 7875 | 9년 전 | 511 | ||
| 7874 |
|
9년 전 | 783 | |
| 7873 | 9년 전 | 482 | ||
| 7872 | 9년 전 | 618 | ||
| 7871 | 9년 전 | 447 | ||
| 7870 | 9년 전 | 570 | ||
| 7869 | 9년 전 | 392 | ||
| 7868 | 9년 전 | 384 | ||
| 7867 | 9년 전 | 381 | ||
| 7866 | 9년 전 | 441 | ||
| 7865 | 9년 전 | 400 | ||
| 7864 | 9년 전 | 465 | ||
| 7863 | 9년 전 | 455 | ||
| 7862 | 9년 전 | 432 | ||
| 7861 | 9년 전 | 593 | ||
| 7860 | 9년 전 | 595 | ||
| 7859 | 9년 전 | 364 | ||
| 7858 | 9년 전 | 672 | ||
| 7857 | 9년 전 | 1022 | ||
| 7856 | 9년 전 | 484 | ||
| 7855 | 9년 전 | 700 | ||
| 7854 | 9년 전 | 700 | ||
| 7853 | 9년 전 | 540 | ||
| 7852 | 9년 전 | 473 | ||
| 7851 | 9년 전 | 447 | ||
| 7850 | 9년 전 | 543 | ||
| 7849 | 9년 전 | 317 | ||
| 7848 | 9년 전 | 367 | ||
| 7847 | 9년 전 | 589 | ||
| 7846 | 9년 전 | 406 | ||
| 7845 | 9년 전 | 369 | ||
| 7844 | 9년 전 | 368 | ||
| 7843 | 9년 전 | 374 | ||
| 7842 | 9년 전 | 369 | ||
| 7841 | 9년 전 | 354 | ||
| 7840 | 9년 전 | 363 | ||
| 7839 | 9년 전 | 395 | ||
| 7838 | 9년 전 | 479 | ||
| 7837 | 9년 전 | 323 | ||
| 7836 | 9년 전 | 361 | ||
| 7835 | 9년 전 | 442 | ||
| 7834 |
|
9년 전 | 1170 | |
| 7833 | 9년 전 | 376 | ||
| 7832 | 9년 전 | 371 | ||
| 7831 | 9년 전 | 507 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기