Кирилл А.
Новичок
"Корявый" resize
Господа, я только начинаю изучать php. взялся сделать фотогаллерею.
Делаю так:
$small_dir="small/";
$big_dir="big/";
$n_per_line=3;
$w = 150;
function ResizeImage($image, $s , $b, $w)
{
$small_dir=$s;
$big_dir=$b;
$new_width = $w;
$final=NULL;
$imgsize = getimagesize($big_dir.$image);
$new_height = $imgsize[1] / ($imgsize[0] / $new_width);
$icfj = ImageCreateFromJPEG($big_dir.$image);
$final = imagecreatetruecolor($new_width,$new_height);
$old_width = imagesx($icfj);
$old_height = imagesy($icfj);
ImageCopyResized($final, $icfj, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
return imagejpeg($final, ($small_dir.$image), 100);
}
$dir = opendir("$big_dir");
$i=0;
while($f = readdir($dir))
{
if(eregi(".gif$", $f) || eregi(".jpg$", $f))
{
$filesize = floor(filesize($big_dir.$f)/1024);
if($gen=="1"){ResizeImage($f,$small_dir,$big_dir,$w);}
echo "<a href='$big_dir$f'><img src='$small_dir$f' alt=\"$filesize kb\"></a>\n";
$i++;
if($i==$n_per_line) { echo "<br>"; $i=0; }
}
}
Все замечательно, НО: превьюшки (thumbs) получаются какими то корявыми чтоли. Хотелось бы как то более правильно чтоли оптимизировать картинки.
Господа, я только начинаю изучать php. взялся сделать фотогаллерею.
Делаю так:
$small_dir="small/";
$big_dir="big/";
$n_per_line=3;
$w = 150;
function ResizeImage($image, $s , $b, $w)
{
$small_dir=$s;
$big_dir=$b;
$new_width = $w;
$final=NULL;
$imgsize = getimagesize($big_dir.$image);
$new_height = $imgsize[1] / ($imgsize[0] / $new_width);
$icfj = ImageCreateFromJPEG($big_dir.$image);
$final = imagecreatetruecolor($new_width,$new_height);
$old_width = imagesx($icfj);
$old_height = imagesy($icfj);
ImageCopyResized($final, $icfj, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
return imagejpeg($final, ($small_dir.$image), 100);
}
$dir = opendir("$big_dir");
$i=0;
while($f = readdir($dir))
{
if(eregi(".gif$", $f) || eregi(".jpg$", $f))
{
$filesize = floor(filesize($big_dir.$f)/1024);
if($gen=="1"){ResizeImage($f,$small_dir,$big_dir,$w);}
echo "<a href='$big_dir$f'><img src='$small_dir$f' alt=\"$filesize kb\"></a>\n";
$i++;
if($i==$n_per_line) { echo "<br>"; $i=0; }
}
}
Все замечательно, НО: превьюшки (thumbs) получаются какими то корявыми чтоли. Хотелось бы как то более правильно чтоли оптимизировать картинки.