Ridimensiono immagini con php perdo qualità

GoshMaledetto

Utente Attivo
20 Dic 2012
137
0
0
www.goshweb.com
Ciao a tutti è il mio primo post su questo forum spero di diventarne membro attivo.

Sto creando una una funzione per il caricamento con ridimensionamento di una serie di immagini ma noto con dispiacere che perdo molta qualità delle immagini. Dove sbaglio? O Come posso migliorare il mio codice? Tenete presente che funziona alla perfezione cosi

Codice:
$uploaddir = 'image/temp_upload/'; 
$file = $uploaddir . basename($_FILES['uploadfile']['name']); 

move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file);

/****** 100px X 100px ******/
	//Recupero le informazioni sull'immagine originale
	list($width, $height, $tipo, $attr) = getimagesize($file);
	
	//Creo alcune variabili che utilizzero successivamente
	$dst_x = 0;
	$dst_y = 0;
	$src_x = 0;
	$src_y = 0;
	
        //Creo un immagine ridimensionata calcolandone le nuove dimensioni
	if($width >= $height) {
		$new_w = 100;
		$new_y = ($height*100)/$width;
		//$dst_y = (200-$new_y)/2;
		$newimage = imagecreatetruecolor($new_w, $new_y);
	}
	else {
		$new_y = 100;
		$new_w = ($width*100)/$height;
		$newimage = imagecreatetruecolor($new_w, $new_y);
	}
	
	echo "<br />" . $tipo . "<br />";
	
	//Recupero l'immagine originale dal server
	switch($tipo) {
		case '2':
			$serverimage = imagecreatefromjpeg($file);
			break;
		case '3':
			$serverimage = imagecreatefrompng($file);
			break;
		case '1':
			$serverimage = imagecreatefromgif($file);
			break;
	}
		
	//Creo l'immagine ridimensionata
	imagecopyresized($newimage, $serverimage, $dst_x, $dst_y, $src_x, $src_y, $new_w, $new_y, $width, $height);
	
	
	
	$nomefile = time() . $_FILES['uploadfile']['name'];
	
	
	// Salvo l'immagine ridimensionata
	
	switch($tipo) {
		case '2':
			$serverimage = imagejpeg($newimage, '../image/prodotti/mini_' . $nomefile, 300);
			break;
		case '3':
			$serverimage = imagepng($newimage, '../image/prodotti/mini_' . $nomefile, 9);
			break;
		case '1':
			$serverimage = imagegif($newimage, '../image/prodotti/mini_' . $nomefile);
			break;
	}
 
Grazie borgo
onestamente si poi non l'ho piu modificato è come dici tu da 0 a 100 ma il risultato non cambia.

Cioè la cosa che mi interessa maggiormente è perche se carico le immagini su qualsiasi altro sito esempio facebook o i vari siti di upload immagini questa cosa non succede? cosa si pùò utilizzare diversamente da php?
 
ciao
non saprei cosa usa fb o simili, comunque devi considerare che anche utilizzando qualche programma (es. gimp o photoshop) se la riduzione è grande comunque le immagini si sgranano.

io uso php con uno script simile al tuo e le tumb in effetti sono un po' sgranate (es rid da width=2560 a w=120) ma se le riduco sempre come partenza w=2560 a w=650 risultano buone
 
Più la riduzione è grande più per logica si perde qualità, e più la qualità è alta più la dimensione del file aumenta, quindi bisogna accontentarci di una via di mezzo, o almeno io ho sempre fatto cosi senza avere grandi problemi
 

Discussioni simili