웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
이미지 업로드시 자동으로 섬네일 이미지 만들어 주기
2004.02.02 16:00
이미지 업로드시 섬네일 이미지 자동으로 만들어 주기 입니다.
여기 저기서 찾아서 짜집기(?) 를 해봤는데... 좀 허접합니다. 한번 테스스 해보시고 부족한점 지적해 주세요...
// 사진입력받는 in.php 파일
<table cellpadding=5 cellspacing=0 border=0 align=center class=box>
<FORM NAME="aaa" ACTION="test1.php" method="post" encType="multipart/form-data">
<tr>
<td align=center>
<input type="file" size="35" name="photo" onkeydown="alert('찾아보기를 이용해 주세요');return false;" class=box onChange="photo_b();"><br>
<img src="images/non.gif" name='bi' border=0>
</td>
</tr>
<tr>
<td align=center><input type=button onclick=ck() value='확 인' class=box onfocus=blur()></td>
</tr>
</form>
</table>
<script>
function photo_b() {
var b_photo=document.aaa.photo.value;
document.bi.src=b_photo; }
function ck() {
if (!document.aaa.photo.value) {
alert ("사진을 선택하여 주세요");
document.aaa.photo.focus();
return false; }
else document.aaa.submit();
}
</script>
// 입력받아서 저장하는 test1.php 파일
<?
$dir="photo"; // 원본이미지 저장될 폴더 이름
$dir1="photos"; // 섬네일 이미지 저장될 폴더 이름
// test1.php파일이 위치한 폴더 하위에 상기 2개의 폴더가 존재해야 하며
// 퍼미션이 777로 설정 되어있어야 한다.
$exp=strrchr($photo_name, '.'); // 확장자 추출
$name=time(); // 시간으로 파일이름을 주도록 한다.
$s_size=100; //섬네일 이미지 큰변의 크기
$file=$dir."/".$name.$exp;
$file1=$dir1."/".$name.$exp;
$img_pnm = $dir1."/".$name.".pnm";
@copy($photo,"$file");
@copy($photo,"$file1");
// 입력된 이미지의 큰변을 찾아 큰변을 지정된 크기 ($s_size=100) 로 변환한다.
$orgSize = getimagesize("$photo");
if ($orgSize[0] > $orgSize[1]) {
$smallX = $s_size;
$smallY = intval(($orgSize[1] * $s_size) / $orgSize[0]); }
else {
$smallY = $s_size;
$smallX = intval(($orgSize[0] * $s_size) / $orgSize[1]); }
// jpg 형식의 파일일경우 pnm 형식 파일로 변환
if($exp == '.jpg') {
exec("djpeg -pnm $file1 > $img_pnm"); }
// gif 형식의 파일일경우 pnm 형식 파일로 변환
else if($exp == '.gif') {
exec("giftopnm $file1 > $img_pnm"); }
@unlink("$file1");
// pnm 형식으로 변환된 파일을 지정된크기의 섬네일 이미지(jpg형식)로 변환
exec("pnmscale -xsize {$smallX} $img_pnm | cjpeg -quality 100 -outfile photos/$name.jpg");
exec("pnmscale -ysize {$smallY} $img_pnm | cjpeg -quality 100 -outfile photos/$name.jpg");
@unlink("$img_pnm");
@unlink($photo);
?>
여기 저기서 찾아서 짜집기(?) 를 해봤는데... 좀 허접합니다. 한번 테스스 해보시고 부족한점 지적해 주세요...
// 사진입력받는 in.php 파일
<table cellpadding=5 cellspacing=0 border=0 align=center class=box>
<FORM NAME="aaa" ACTION="test1.php" method="post" encType="multipart/form-data">
<tr>
<td align=center>
<input type="file" size="35" name="photo" onkeydown="alert('찾아보기를 이용해 주세요');return false;" class=box onChange="photo_b();"><br>
<img src="images/non.gif" name='bi' border=0>
</td>
</tr>
<tr>
<td align=center><input type=button onclick=ck() value='확 인' class=box onfocus=blur()></td>
</tr>
</form>
</table>
<script>
function photo_b() {
var b_photo=document.aaa.photo.value;
document.bi.src=b_photo; }
function ck() {
if (!document.aaa.photo.value) {
alert ("사진을 선택하여 주세요");
document.aaa.photo.focus();
return false; }
else document.aaa.submit();
}
</script>
// 입력받아서 저장하는 test1.php 파일
<?
$dir="photo"; // 원본이미지 저장될 폴더 이름
$dir1="photos"; // 섬네일 이미지 저장될 폴더 이름
// test1.php파일이 위치한 폴더 하위에 상기 2개의 폴더가 존재해야 하며
// 퍼미션이 777로 설정 되어있어야 한다.
$exp=strrchr($photo_name, '.'); // 확장자 추출
$name=time(); // 시간으로 파일이름을 주도록 한다.
$s_size=100; //섬네일 이미지 큰변의 크기
$file=$dir."/".$name.$exp;
$file1=$dir1."/".$name.$exp;
$img_pnm = $dir1."/".$name.".pnm";
@copy($photo,"$file");
@copy($photo,"$file1");
// 입력된 이미지의 큰변을 찾아 큰변을 지정된 크기 ($s_size=100) 로 변환한다.
$orgSize = getimagesize("$photo");
if ($orgSize[0] > $orgSize[1]) {
$smallX = $s_size;
$smallY = intval(($orgSize[1] * $s_size) / $orgSize[0]); }
else {
$smallY = $s_size;
$smallX = intval(($orgSize[0] * $s_size) / $orgSize[1]); }
// jpg 형식의 파일일경우 pnm 형식 파일로 변환
if($exp == '.jpg') {
exec("djpeg -pnm $file1 > $img_pnm"); }
// gif 형식의 파일일경우 pnm 형식 파일로 변환
else if($exp == '.gif') {
exec("giftopnm $file1 > $img_pnm"); }
@unlink("$file1");
// pnm 형식으로 변환된 파일을 지정된크기의 섬네일 이미지(jpg형식)로 변환
exec("pnmscale -xsize {$smallX} $img_pnm | cjpeg -quality 100 -outfile photos/$name.jpg");
exec("pnmscale -ysize {$smallY} $img_pnm | cjpeg -quality 100 -outfile photos/$name.jpg");
@unlink("$img_pnm");
@unlink($photo);
?>
댓글 2
-
웹-하루
2004.02.11 22:36
-
장정식
2004.02.14 13:00
저의 경우에는 데이타 베이스에 원본이미지의 파일이름과, 썸네일 이미지의 파일이름을 저장 한후
데이타베이스를 돌릴때 이미지 이름을 호출해서 뿌려주는 방법으로 뿌렸습니다.
한가지 부탁 해도 될까요?
이걸루 저장하구 다시 웹페이지에서 불러오고 싶은데....혹시 그것두 만들어 주실수 있나요?
부탁 드립니다....php는 잘몰라서요..