thunderslim
Новичок
Черная картинка при ресайзе картинки меньше 600 пикселей
Добрый день.
Возникла следующая проблема. Есть функция ресайза картинок, которая представлена ниже, она обрезает и уменьшеает каритнку до заданных значений высоты и ширины. Но. Она работает с картинками по ширине более 600 пикселей. С меньшими по ширине выдает как превьюшку черную картинку.
-----------
Добрый день.
Возникла следующая проблема. Есть функция ресайза картинок, которая представлена ниже, она обрезает и уменьшеает каритнку до заданных значений высоты и ширины. Но. Она работает с картинками по ширине более 600 пикселей. С меньшими по ширине выдает как превьюшку черную картинку.
-----------
PHP:
function imgreszres($src,$is)
{
$imgsrc = imagecreatefromjpeg($src);
$width = imagesx($imgsrc);
$height = imagesy($imgsrc);
$imgfinal = imagecreatetruecolor(172, 140);
$n1 = $is.date("idHsz").".jpg";
copy ($src, "/home/www/images/dow/$n1");
if ($width>=$height)
{
//Подгон по высоте
$hdest=140;
$ratio=$width/$height;
$wdest=round($ratio*$hdest);
$imgdest=imagecreatetruecolor($wdest,$hdest);
//echo $wdest."-----".$ratio;
imagecopyresampled($imgdest, $imgsrc, 0, 0, 0, 0, $wdest, $hdest, $width, $height);
if ($wdest>172)
{
$center=$wdest/2;
$c_is=172/2;
$leftpoint=round($center-$c_is);
$rightpoint=round($center+$c_is);
imagecopyresampled($imgfinal,$imgdest,0,0,$leftpoint,0,172,140,172,140);
}
$n2 = "a".$n1;
imagejpeg($imgfinal, "/home/prestigetru/www/images/dow/".$n2);
//imagejpeg($imgdest, "test/testing.jpg", 100);
//imagejpeg($imgfinal, "test/final.jpg", 100);
}
else
{
$wdest=172;
$ratio=$height/$width;
$hdest=round($ratio*$wdest);
$imgdest=imagecreatetruecolor($wdest,$hdest);
imagecopyresampled($imgdest, $imgsrc, 0, 0, 0, 0, $wdest, $hdest, $width, $height);
if ($hdest>140)
{
$center=$hdest/2;
$c_is=140/2;
$toppoint=round($center-$c_is);
$botpoint=round($center+$c_is);
imagecopyresampled($imgfinal,$imgdest,0,0,0,$toppoint,172,140,172,140);
}
$n2 = "a".$n1;
imagejpeg($imgfinal, "/home/www/images/dow/".$n2);
}
return $n1;
}