gx.code
Новичок
Создание превью на ПХП
Здравствуйте!
Написал свой скрипт ля создания превью. Но к сожалению не все ошибки смог исправить.
Вас не затруднит указать мне на мои ошибки и недостатки оптимизации моего кода:
Здравствуйте!
Написал свой скрипт ля создания превью. Но к сожалению не все ошибки смог исправить.
Вас не затруднит указать мне на мои ошибки и недостатки оптимизации моего кода:
PHP:
<?
***********CUT********** здесь идёт обращение к БД и запрос имени файла, который нужно отредактировать($picn)
$fpath="полный путь к директории с хранящимися файлами";
$src = imagecreatefromjpeg($fpath.$picn);
list($width,$height)=getimagesize($fpath.$picn);
////Далее делаем ПРОПОРЦИОНАЛЬНЫЙ ресайз картинки. Картинка должна стать менее 800*600, но при сжатии не потерять пропорции. Новое имя равно "староеимяfull.jpg"
if($width>800 or $height>600){
if(800/$width<600/$height){
$nwidth=800;
$nheight=(800*$height)/$width;
}else{
$nheight=600;
$nwidth=(600*$width)/$height;
}
$picnsplit=explode(".", $picn);
$full="full.jpg";
$picnfull=$picnsplit[0].$full;
$tmp=imagecreatetruecolor($nwidth,$nheight);
ImageCopyResized($tmp,$src,0,0,0,0,$nwidth,$nheight,$width,$height);
imagejpeg($tmp,$fpath.$picnfull,100);
chmod($fpath.$picnfull,0777);
$query="записываем в БД новое имя полной картинки";
mysql_query($query);
$src=$tmp;
$width=$nwidth;
$height=$nheight;
}else{
$picnsplit=explode(".", $picn);
$full="full.jpg";
$picnfull=$picnsplit[0].$full;
imagejpeg($src,$fpath.$picnfull,100);
chmod($fpath.$picnfull,0777);
$query="записываем в БД новое имя полной картинки";
mysql_query($query);
}
///Далее создаём превью размером 80*90. Будет иметь имя оригинального файла.
$x=0;
$y=0;
if($width>$height){
$cheight=$height;
$cwidth=round((160*$cheight)/180);
$x=($width/2)-($cwidth/2);
}else{
$cwidth=$width;
$cheight=round((180*$cwidth)/160);
$y=($height/2)-($cheight/2);
}
$newwidth=80;
$newheight=90;
$tmp2=imagecreatetruecolor($cwidth,$cheight);
imagecopy ($tmp2,$src, 0, 0, $x, $y,$cwidth,$cheight);
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$tmp2,0,0,0,0,$newwidth,$newheight,$cwidth,$cheight);
imagejpeg($tmp,$fpath.$picn,100);
chmod($fpath.$picn,0777);
imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp2);
mysql_close();
?>