웹마스터 팁
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
저의 경우에는 데이타 베이스에 원본이미지의 파일이름과, 썸네일 이미지의 파일이름을 저장 한후
데이타베이스를 돌릴때 이미지 이름을 호출해서 뿌려주는 방법으로 뿌렸습니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
[초간단 자바스크립트!] 튀어나오는 글자..-_-;; | ∑Ztxy | 2004.01.18 |
[초간단 자바스크립트!] 이미지 갤러리 [2] | ∑Ztxy | 2004.01.18 |
[초간단 자바스크립트!] 색깔바뀌는 메뉴 [3] | ∑Ztxy | 2004.01.19 |
전체화면에서 스크롤바 없애기 [7] | 이태식 | 2004.01.23 |
[초간단 자바스크립트!] 자바로 로그인폼 만들기 [3] | ∑Ztxy | 2004.01.26 |
인풋(코멘트)창 크기 조정 | 정재원 | 2004.01.27 |
[초간단 자바스크립트!] 자바로 홈페이지를부드럽게!!(1) [4] | ∑Ztxy | 2004.01.27 |
세이클럽 스크롤바 [7] | 세강 :D | 2004.02.01 |
앞,뒤,새로고침 만들기 [2] | piasol | 2004.02.01 |
주소창에 아이콘을 달자(다음,엠파스처럼) [3] | piasol | 2004.02.01 |
Select 태그 관련 스크립트 [12] | Zective | 2004.02.04 |
[초간단 자바스크립트!] 플래시 FullSize로 보여주기 [4] | ∑Ztxy | 2004.02.05 |
페이지 내에 주소창 달기 [1] | piasol | 2004.02.09 |
BGM Player (배경 음악) [17] | 장진석 | 2004.02.16 |
XML+JS 연동 다중셀렉트 | 투헤븐 | 2004.02.16 |
벅스뮤직 플레이어 스크립트 추출기 [4] | 이녀석 | 2004.02.16 |
우뚜같은 포워딩 페이지에서 프레임 깨기.(프레임 없애기) [17] | 김영성 | 2004.02.19 |
회원 가입 페이지 이젠 끝이다 [5] | 윌 | 2004.03.03 |
벅스뮤직 음악듣기 및 시작 정지 버튼 넣기(기타 음악파일도...) [3] | 카멜롯™ | 2004.03.04 |
방문자 OS보여주기 [5] | 구조반 | 2004.03.05 |
한가지 부탁 해도 될까요?
이걸루 저장하구 다시 웹페이지에서 불러오고 싶은데....혹시 그것두 만들어 주실수 있나요?
부탁 드립니다....php는 잘몰라서요..