썸네일 만들기(손톱그림)
페이지 정보
본문
//일단 하기전에 아래의 외부함수들 되는지 부터 조사...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" );
*/
}
================================================================
// 환경 설정 부분
$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" );
*/
}
================================================================
- 이전글디렉토리의 파일들을 화면에 보여줌 21.02.09
- 다음글캐쉬 사용하지 않고 새로 파일을 불러오기 header 21.02.09
댓글목록
등록된 댓글이 없습니다.