Качество ImageCopyResized

Dmitri

Новичок
Качество ImageCopyResized

Создаю превьюшки из больших фоток с помощью ImageCopyResized, все ресайзится нормально. Но даже при качестве 90, jpg получается убогий, с шириной 200 пикселей еще ничего, а с 90, вообще убожество. Это как-то лечится или php не сделает лучше чем к примеру ресайз через ACDsee.
 

Alexandre

PHPПенсионер
PHP:
			if($_FILES['photo']['tmp_name'])
				{
				$fname=$_FILES['photo']['name'];
				$afile = pathinfo($fname);
				$ext=$afile[extension];
				$path=$_SERVER["DOCUMENT_ROOT"]."/photo/photo".$user_id.'.'.$ext;
				if (!move_uploaded_file( $HTTP_POST_FILES[photo][tmp_name], $path ))
						{ eval ("\$error = \"".gettemplate("error3")."\";");
[tmp_name] ;
						}  else {
						$db->query_first("UPDATE  bb".$n."_user_table SET photo='photo".$id.".".$ext."'  WHERE userid='$id'");
						chmod ($path , 0744);
	$path=$_SERVER["DOCUMENT_ROOT"]."/photo/photo".$user_id.'.'.$ext;
	$info=getimagesize($path);
	$kw=80/$info[0];
	$h=$kw * $info[1];
	$h=intval($h);
($info[0]>100) {
	$path=$_SERVER["DOCUMENT_ROOT"]."/photo/photo".$user_id.'.';
		if ($info[2]==1) $im=ImageCreateFromGIF($path.'gif'  );
		if ($info[2]==2) 
									if (!$im=ImageCreateFromJPEG($path.'jpg' )) echo 'dont load '.$path.'jpg' ;
								$imNew=ImageCreateTrueColor(80, $h);
		ImageCopyResized ( $imNew, $im, 0,  0,  0, 0,  80,  $h,  $info[0],  $info[1])   ;							
		if ( !ImageCopyResampled( $imNew, $im, 0,  0,  0, 0,  80,  $h,  $info[0],  $info[1])  )
										 echo 'don\'t resize image';  
								 $path =$_SERVER["DOCUMENT_ROOT"]."photo/photo".$user_id."a.jpg";
								echo '<br>	new: '.$path;
								 if (file_exists($path)) unlink($path);
								if (!Imagejpeg( $imNew, $path ))
			 die( 'don\'t create image'); 
								chmod ($path , 0744);
	}
 

Dmitri

Новичок
Вот мой код. В принципе похоже.

$src_img = imagecreatefromjpeg("$file");
$true_width = imagesx($src_img);
$true_height = imagesy($src_img);

if ($true_width>=$true_height)
{
$width=$size;
$height = ($width/$true_width)*$true_height;
}
else
{
$height=$size;
$width = ($height/$true_height)*$true_width;
}

$dst_img = imagecreatetruecolor($width,$height);
ImageCopyResized($dst_img, $src_img, 0, 0, 0, 0, $width, $height, $true_width, $true_height);
imagejpeg($dst_img, $file1, $quality);
imagedestroy($src_img);
imagedestroy($dst_img);
 

Фанат

oncle terrible
Команда форума
Dmitri на этом форуме существует поиск.
а твой вопрос задают два раза в неделю
 
Сверху