스마트폰등에서 이미지첨부할경우 이미지해상도가 너무커서
적정한 사이즈로 변경하는 재귀함수.
나중에 찾아보기 편하도록 기록으로 남김.
===============================================================
if($_GET['mode'] == 'resize'){
echo "<div >이미지 리사이징</div>";
function _resize($_file,$_depth=0){
$_name = basename($_file);
$_dir = dirname($_file);
$_indent = ($_depth +1)*20;
$_info = _get_file_info($_file);
$_org = $_dir."/src_".$_name;
echo "<div style='margin-left:{$_indent}' class='gray'>파일 : [{$_info['type']}/{$_info['size_txt']}/{$_info['width']}]{$_name}";
if(file_exists($_org)){
$_info2 = _get_file_info($_org);
echo "<div class='blue'>└ 원본 : [{$_info2['type']}/{$_info2['size_txt']}/{$_info2['width']}] src_{$_name}</div>";
}
if($_info['type'] == 'image'){
if(strpos($_name,'src_') === false){
if($_info['width'] > 480){
$_org = $_dir."/src_".$_name;
//rename($_file,$_org);
$_thumb = $_file;
//Thumbnail_Create2($_org,$_thumb,1500,0,'v');
echo " <span class='red'>[변환: {basename($_file)} => {basename($_org)} ]</span>";
}
}
}
echo "</div>";
flush();
}
function _readdir($_dir,$_depth=0){
if(is_dir($_dir)){
$_name = basename($_dir);
$_indent = ($_depth)*20;
$_bold = $_depth < 2 ? 'bold' : 'blue pad2';
echo "<div class='".$_bold."' style='margin-left:".$_indent."px;'>[".$_name."]</div>";
flush();
if($handle = opendir($_dir)){
while (($file = readdir($handle)) !== false) {
if($file != '.' && $file != '..'){
$_file = $_dir."/".$file;
if(is_dir($_file)){
_readdir($_file,$_depth +1);
}else{
_resize($_file,$_depth);
}
}
}
}
}else{
_resize($_dir);
}
}
$_dirs = "_data/movie";
_readdir($_dirs);
echo "<hr /> <div class='bold pad2'>작업종료! [<a href='?'>처음</a>]</div><br /><br />";
}
===============================================
'프로그램.코딩' 카테고리의 다른 글
ASP 용 GCM 발송 (1) | 2014.01.17 |
---|---|
ASP용 함수정리 (0) | 2014.01.17 |
php 로 동적이미지 생성하기(gd이용) (0) | 2014.01.17 |
아이코드 sms 모듈사용시 사용자 정보 받아오기 (0) | 2013.10.23 |
구글 짧은주소 얻기함수 (0) | 2013.02.08 |
댓글