썸네일 만들기(손톱그림) > PHP

본문 바로가기
사이트 내 전체검색

PHP

썸네일 만들기(손톱그림)

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 7,189회 작성일 21-02-09 11:32

본문

//일단 하기전에 아래의 외부함수들 되는지 부터 조사...pnmscale등....

 // 환경 설정 부분
$savedir=$path."/".$savedir."/".$kind;
 $tb_savedir=$savedir."/"."thumb";
 $t_width=$info_row[t_width];
 $t_height=$info_row[t_height];
 //

 $filenum=1;

 // 파일이 존재한다고 가정한다.
 $fileexit=1;

 $tempfilename=$savedir."/".$kind.$filenum.".".$fileex;

 do{
 if(file_exists($tempfilename)){
 $filenum=$filenum+1;
 $tempfilename=$savedir."/".$kind.$filenum.".".$fileex;
 }
 else {
 $fileexit=0;
 copy($picture, $tempfilename);
 $temp=$kind.$filenum.".".$fileex;
 }
 }while($fileexit==1);


 // 손톱 이미지를 만든다.//
 $filename = explode(".", $temp);
 $filenm = strtolower($filename[0]);
 $fileex = strtolower($filename[1]);

 if($size[0]<$t_width && $size[1]<$t_height) {
 $tb_temp=$tb_savedir."/thumb_".$temp;
 copy($picture, $tb_temp);
 }
 else{
 //JPG파일 포멧
if($fileex == 'jpg' || $fileex == 'jpeg'){
 exec( "djpeg -pnm $savedir/$temp> $savedir/$filenm.pnm" );
 exec( "pnmscale -xy $t_width $t_height $savedir/$filenm.pnm | cjpeg -progressive -optimize -smooth 20 -outfile $tb_savedir/thumb_$temp" );
 unlink( "files/$filenm.pnm" );
 }
 // gif파일포맷
if( $fileex == 'gif' ){
 exec( "giftopnm $savedir/$temp> $savedir/$filenm.pnm");
 exec( "pnmscale -xy $t_width $t_height $savedir/$filenm.pnm | cjpeg -progressive -optimize -smooth 20 -outfile $tb_savedir/thumb_$temp" );
 unlink( "files/$filenm.pnm" );
 }
 }
 unlink($picture);

--------------------------------------위 소스에 대한 보충 답글
 추가하자면 위의 소스에서 사이즈 조정은 제대로 안먹힐겁니다.
변환용프로그램의 버젼문제인지 옵션을 다르게 줘야 돌아갈겁니다.
pnmscale -xy 를 바꿔줘야하는데
pnmscale -xsize 20 -ysize 10 이거였던가.. 아님
pnmscale -xwidth 20 -ywidth 10 였던가... 기억이 가물가물...

손톱그림을 저장할 디렉토리의 권한설정만 잘지정되면 잘 작동합니다.
물론 리눅이 서버에 위내용에서 사용되는 이미지 변환용 프로그램이
 있어야겠지요. 도움이 되기를...



 =================================================================


if(strcmp($p_file_name,'')){
 $savedir = "$DOCUMENT_ROOT/kor/product";
 $full_filename = explode(".", "$p_file_name");
 $extension = $full_filename[sizeof($full_filename)-1];

 if(strcmp($extension,'jpg'))
 {
 ?>
 <script language=javascript>
 <!--
alert('선택하신 파일은 업로드 하실수 없습니다.\n그림 파일이 맞는지 다시 확인 해 주세요');
history.back();
 //-->
 </script>
 <?
 exit;
 }

 $exist = file_exists("$savedir/$p_file_name");

 if($exist)
 {
 ?>
 <script language=javascript>
 <!--
alert('이름이 같은 파일이 존재합니다.\n다른 이름으로 지정해 주세요.');
history.back();
 //-->
 </script>
 <?
 exit;
 }

 if(!copy($p_file, "$savedir/$p_file_name"))
 {
 ?>
 <script language=javascript>
 <!--
alert('파일 복사에 실패했습니다.\n관리자에게 문의 하세요.');
self.close();
 //-->
 </script>
 <?
 exit;
 }

 if(!unlink($p_file))
 {
 ?>
 <script language=javascript>
 <!--
alert('임시 파일을 삭제하는데 실패하였습니다.\n관리자에게 문의 하세요.');
history.back();
 //-->
 </script>
 <?
 exit;
 }

 }



 $temp = "$p_file_name";
 $filenm = "$p_id";




 $tb_savedir = "$DOCUMENT_ROOT/kor/product/$a_id";

 $p_idfile1 = "$p_id" . "1.jpg";
 $p_idfile2 = "$p_id" . "2.jpg";
 $p_idfile3 = "$p_id" . "3.jpg";

 if($extension == 'jpg' || $extension == 'jpeg'){
 exec("djpeg -pnm $savedir/$temp > $savedir/$filenm.pnm" );
 exec("pnmscale -xsize 90 -ysize 90 $savedir/$filenm.pnm | cjpeg -progressive -optimize -smooth 20 -outfile $tb_savedir/$p_idfile1");
 exec("pnmscale  -xsize 240 -ysize 240 $savedir/$filenm.pnm | cjpeg -progressive -optimize -smooth 20 -outfile $tb_savedir/$p_idfile2");
 exec("pnmscale  -xsize 500 -ysize 500 $savedir/$filenm.pnm | cjpeg -progressive -optimize -smooth 20 -outfile $tb_savedir/$p_idfile3");

 chmod("$tb_savedir/$p_idfile1" , 0777);
 chmod("$tb_savedir/$p_idfile2" , 0777);
 chmod("$tb_savedir/$p_idfile3" , 0777);

 unlink( "$savedir/$filenm.pnm" );
 unlink( "$savedir/$temp" );
 }
 // gif파일포맷
if( $extension == 'gif' ){
 echo("
 <script language=javascript>
        alert ('죄송합니다. 아직 gif파일은 지원하지 않습니다.');
        history.back();
 </script>       
 ");
 exit;
 /*
 exec( "giftopnm $savedir/$temp> $savedir/$filenm.pnm");
 exec( "pnmscale -xysize $t_width $t_height $savedir/$filenm.pnm | cjpeg -progressive -optimize -smooth 20 -outfile $tb_savedir/thumb_$temp" );
 exit;
 unlink( "files/$filenm.pnm" );
 */
 }

 ================================================================

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

  • 게시물이 없습니다.

접속자집계

오늘
1,400
어제
1,833
최대
6,642
전체
1,192,601
contact : webmaster@beautipia.co.kr
Copyright © beautipia.co.kr. All rights reserved.