Autor Zpráva
rad
Profil *
Dobry den
Chtel jsem se zeptat na problem s kvalitou obrazku pri pouziti tohoto kodu
kvalita je opravdu mizerna delam neco spatne ??

  if(preg_match('/[.](jpg)$/', $filename)) {  
        $im = imagecreatefromjpeg($path_to_image_directory . $filename);  
    } else if (preg_match('/[.](gif)$/', $filename)) {  
        $im = imagecreatefromgif($path_to_image_directory . $filename);  
    } else if (preg_match('/[.](png)$/', $filename)) {  
        $im = imagecreatefrompng($path_to_image_directory . $filename);  
    }  
   
    $ox = imagesx($im);  
    $oy = imagesy($im);  
		 
    if  (($ox<800)&&($oy<800))
    {
    		imagedestroy($im);  
    }	  
	  else{                     		
		if($ox>$oy){
		   $nx=800;
		   $ny=($nx*$oy)/$ox;
		}
		else{
		     $ny=800;
		     $nx=($ny*$ox)/$oy;
		}		        
    $nm = imagecreatetruecolor($nx, $ny);    
    imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);  
    imagejpeg($nm, $target, 100);    
    imagedestroy($nm);
    }       


kod neni cely ale tady menim velikost tak se to bude tykat asi teto casti
diky
o_O
Profil
rad:
Na zmenšování obrázků doporučuji použít třídu SimpleImage.

if(preg_match('/[.](jpg)$/', $filename)) {
Vhodnější je používat:
pathinfo($filename,PATHINFO_EXTENSION);
a výsledek ukládat do proměnné - nevolat zbytečně Xkrát stejnou funkci.
Davex
Profil
rad:
kvalita je opravdu mizerna delam neco spatne ??
Pro zmenšení používáš funkci imagecopyresized(). Lepší kvality dosáhneš funkcí imagecopyresampled().
Chro
Profil
rad:
Používej funkci imagecopyresampled() jak ti radí Davex. Případně můžeš obrázek před uložením ještě jemně zaostřit.
$matrix = array(
array(-1, -1, -1),
array(-1, 16, -1),
array(-1, -1, -1)
);
$delitel = array_sum(array_map('array_sum', $matrix));
imageconvolution($nm, $matrix, $delitel, 0);

imagejpeg($nm, $target, 90);
imagedestroy($nm);
rad
Profil *
super diky hned zkusim

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0