테스트 사이트 - 개발 중인 베타 버전입니다

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

· 13년 전 · 2907 · 30
이전에 강좌로 하던 함수를 모닝님의 요청으로 조금 수정햇습니다.

원격이미지의 썸네일 만드는 기능도 포함하였습니다.

해당 라이브러리를 필요한 곳에 인클루드 하시고.

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

create_thumbnail('./attach/1/1267047665.jpg', 'a.png', 50); 등로 사용하면 됩니다.

자세한 옵션이나 설명은 라이브러리 파일내에 포함되어있습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 30개

어렴풋한 제 기억으로는 아마 플록님이 하신 것으로 생각됩니다.

이것까지도 유창화님의 방식으로 소스 안에 포함되면 사용자의 입장에서 훨씬 간편하리라는 생각입니다.
통합본이면서도 사용방법도 단일화되서 참 좋습니다.
죄송하지만 제일 보편적인 것으로 function 하나 넣어주세요...^^;
function create_thumbnail($path_src_file_or_url, $path_save_file, $save_w, $save_h=0, $options=Array())
요 앞에 넣어주시면 되잖아요,
순전히 사용자입장입니다ㅡ,.ㅡ
유창화님!!! 죄송합니다.
굳이 function을 도 만들지 않아도 될 것 같아요.
아래처럼 하니 나옵니다. 그리 복잡하지 않습니다.
정말 죄송했습니다.
그래도 더 단순하게 사용할 수 있으면 좋구요...^^;
--------------------------
if (empty($list[$i]['thumb']) && !empty($list[$i]['wr_content']) && preg_match("`src\s*=([^>]+\.(gif|jpe?g|png))('|\"|\s|>)`iU", $list[$i]['wr_content'], $path_src_url)) {

$path_src_url[1] = preg_replace("`[\s\"']+`", '', $path_src_url[1]);

if (!empty($path_src_url[1])) {

create_thumbnail($path_src_url[1], $path_save_file, $save_w, $save_h, $options);
세로기준의 중간 크롭방식이 필요해서 이 썸네일함수를 사용하고 싶은데
잘 않되네요.ㅠㅠ

사용법을 잘 모르겠습니다.

<?
include_once("./_common.php");
include_once("$g4[path]/lib/image_proc.function.php");
$file = "./imgp1602.jpg";

create_thumbnail('$file', 'a.jpg', 250, 250, 90,1, 2, 2);
create_thumbnail('./imgp1602.jpg', 'b.jpg', 50);
?>
<img src="a.jpg" />
<img src="b.jpg" />

위처럼 할때..
썸네일 파일이 생성 되지 않네요..흑
시하님.
일단 유창화님의 댓글대로 해보세요.

create_thumbnail($v['file'], $path_save_file, $save_w, $save_h, $options)
의 앞부분에 아래처럼 옵션이 나오고 썸네일이름과 저장위치가 먼저 정의되어야 합니다.
숫자로 쓰지 마시고...
원하시는 옵션(님?)을 무한정 넣어주기만 하면 됩니다.
--------------
$options = Array();
$options['save_force'] = 1;
$options['crop_use'] = 0;

$path_save_dir = $g4['path'] . '/data/file/' . $bo_table . '/thumbnail;
$path_save_file = $path_save_dir . '/list_' . $list[$i]['wr_id'] . '.png';
썸네일이 생성 안될때

echo $GLOBALS['errormsg']; 를 추가로 출력해보세요.
에러 내용을 알수 잇습니다.

create_thumbnail('$file', 'a.jpg', 250, 250, 90,1, 2, 2); 이거는 인자수가 안맞구요
create_thumbnail('./imgp1602.jpg', 'b.jpg', 50); 이거는
형식은 올바른데
같은 경로에 './imgp1602.jpg' 이파일 없거나
b.jpg 의 상위 디렉토리 권한이 777 이나 707 이 아닌것 같습니다.

그리고 크롭을 할려면

$options = Array();
$options['crop_use'] = 1; //크롭을 사용함
$options['crop_pos_width'] = 2;//너비 기준 크롭시 중앙을 기준
$options['crop_pos_height'] = 1;//높이 기준 크롭시 상단을 기준

등의 재정의 할 옵션을 설정하고
create_thumbnail('./imgp1602.jpg', 'b.jpg', 50, 50, $options); 와 같이 하거나

함수내에 옵션을 직접 변경하여

//기본값 설정
$save_quality = 70;//저장 품질 : 70 %
$save_force = 2;//저장형태 : 파일 덮어씌움

$crop_use = 1;//크롭 사용여부
$crop_pos_width = 2;//너비 기준 크롭시 중앙을 기준
$crop_pos_height = 1;//높이 기준 크롭시 상단을 기준

$watermark_path_file = '';//워터마크로 사용할 파일 경로 : 없음
$watermark_pos = 4;//워터마크 찍는 위치 : 하단 오른쪽
$watermark_sharpness = 30;//워터마크 이미지의 선명도 : 30 %
$watermark_padding = 10;//원본과 워터마크 사이의 여백 : 10px

create_thumbnail('./imgp1602.jpg', 'b.jpg', 50, 50);

와 같이 사용하거나 하면 됩니다.
높이 값을 지정안하거나 0 으로 하면
자동으로 만들어질 너비에 맞게 정비율로 생성되고

높이 값을 지정하고 크롭을 사용안함으로 설정하면
강제로 너비와 높이를 맞춘 찌그러진 이미지가 생성되고

높이 값을 지정하고 크롭을 사용함으로 설정하면
크롭규칙대로
너비를 기준으로 왼쪽 가운데 오른쪽,
높일르 기준으로 상 중 하,
등으로 크롭한 이미지가 생성됩니다.
라이센스 어떻게 되나요?
나중에 이 코드 포함해서 배포합니다. ㅎㅎ
라이센스는 책이나 강좌에 포함되지만 않으면 됩니다.
즉 사용상에 제한은 없습니다.

http://sir.co.kr/bbs/board.php?bo_table=pg_php&wr_id=418&sca=&sfl=wr_name%2C1&stx=%EC%9C%A0%EC%B0%BD%ED%99%94&sop=and

이거의 최종본이라고 보심 됩니다.

관리자님의 지대한 관심 감사합니다!!!!

게시글 목록

번호 제목
12487
12486
380
12484
12483
376
12482
12481
12479
12478
12477
12476
12475
12474
12473
12472
12471
12470
12469
371
12468
12467
12466
12465
12464