알짜게시판

[PHP] Imagek 를 이용한 썸네일 생성

<?php
// Imagik 를 이용한 썸네일 생성
function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_height)
{
   $thumbname = 'thumb-'.preg_replace("/\.[^\.]+$/i", "", $filename).'_'.$thumb_width.'x'.$thumb_height.'.png';

   $thumb_file = $target_path.'/'.$thumbname;
   if(is_file($thumb_file)) return $thumbname;

   $source_file = $source_path.'/'.$filename;
   if(!is_file($source_file)) return;

   $img = new Imagick($source_file);

   $img->thumbnailImage($thumb_width, $thumb_height);

   $img->setImageFormat('png');
   $img->writeImage($thumb_file);

   return $thumbname;
}

// 사용하기
$thumbname = thumbnail('원본파일명', '원본파일경로', '썸네일저장경로', '썸네일 넓이', '썸네일 높이');
if($thumbname)
{
   header('Expires: '.gmdate('D, d M Y H:i:s', time()+(60*60*24*365)).' GMT');
   header('Cache-Control: max-age='.(60*60*24*365));
   header('Pragma: public');
   header('Content-Type: image/png');

   $fp = fopen($filepath.'/'.$thumbname, 'rb');
   if (!fpassthru($fp)) fclose($fp);
}

로그인 후 댓글내용을 입력해주세요

번호 제목 글쓴이 조회 날짜
열람 [PHP] Imagek 를 이용한 썸네일 생성 45,739 08-26
32 [그누보드] 1364 : Field 'xxxxx' doesn't have a default value 45,200 08-20
31 [리눅스] 윈도우 프로그램 실행 (centos7, wine 7.0) 45,011 08-09
30 [윈도우] IPv6 켜기, 끄기 45,002 08-03
29 [그누보드] 회원 가입일 기준으로 이용기간 정하기 41,125 07-28
28 [그누보드] sql_fetch, sql_query 안쓰고 직접 mysql 사용하기 40,749 07-24
27 [PHP] PHP 수정시 적용이 안되는 경우 해결 (opcache 중지) 35,363 03-31
26 [맥OS] 마우스 휠 스크롤 방향 윈도우와 일치시키는 방법 26,057 02-28
25 [Ruby] 윈도우에서 pod install 실행시 UTF-8 오류 26,870 02-28
24 [Ruby] Could not open library 'libcurl' 25,232 02-28
23 [Android] Error type 3: Activity class {com.?.MainActivity} … 16,581 02-02
22 [PHP] Curl 을 이용하여 파일 다운로드 5,985 01-19
21 [PHP] Curl 을 이용하여 json 을 post 보내기 6,609 01-19
20 설치하려고 하는 앱이 Microsoft에서 확인된 앱이 아닙니다. 16,363 10-11
19 [Delphi] Glyph 에 사용할 이미지 생성하기 1,691 09-02
18 파이썬 아나콘다 업데이트 1,954 08-06
17 [Delphi] bsNone 인 폼에서 드래그 및 크기조절 3,200 07-11
16 [리눅스] Composer 설치하기 1,871 07-06
15 [윈도우] WinHTTP 사용에서 12175 에러 발생시 4,911 04-04
14 [MYSQL] 날짜필드 연장하기 2,054 03-20
13 [리눅스] Swap 생성/수정 2,311 09-04
12 [리눅스] 바이러스 검사 2,084 09-04
11 [PHP] 실시간 화면 출력 4,320 08-04
10 [윈도우] 원격 데스크탑 접속 기록 삭제하기 3,245 07-24
9 [윈도우] 네트워크 드라이브 커맨드 명령으로 연결하기 1,716 07-11
8 [MYSQL] 계정 추가 및 외부 접속 허용 1,732 07-05
7 VS Code 설치방법 2,318 06-30
6 구글 google 영어 사이트로 접속하기 3,510 06-20
5 [안드로이드] 구글 검색기록 끄기 2,159 06-14
4 [윈도우] 레지스트리 변경값 추적하는 프로그램 6,638 06-14
3 [리눅스] 간단한 보안 체크하기 1,973 06-05
목록