Blupixel IT Blog – Articoli e Tutorial Informatica e Programmazione

Blog ufficiale di Blupixel IT Srl

Ridimensionare una immagine in PHP in base ad una altezza massima

Volendo cambiare altezza o larghezza o dimensioni ad una immagine, volendola ridimensionare quindi, è possibile usare questa funzione PHP

function imgResize($src, $dst, $stype, $max_height = NULL, $force_increment = false) {

	ini_set("memory_limit","256M");

	if (!$max_height)
		$max_height = 800;

	// Get new dimensions
	list($width, $height) = getimagesize($src);
	$percent = $max_height/$height;
	$new_width = $width * $percent;
	$new_height = $height * $percent;

	// Resample
	$img_dst = imagecreatetruecolor($new_width, $new_height);
	switch ($stype) {

		case 'gif':
			$image = imagecreatefromgif($src);
			break;
		case 'jpg':
			$image = imagecreatefromjpeg($src);
			break;
		case 'png':
			$image = imagecreatefrompng($src);
			break;
		default: echo "Image type not supported";
			break;
    	}

	if ($height > $max_height || $force_increment){
		$ret = imagecopyresampled($img_dst, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

		$ret=imagejpeg($img_dst, $dst, 100);
	} else {
		$ret=imagejpeg($image, $dst, 100);
	}

	return $ret;
}

Gli argomenti di ingresso sono: File di origine, file di destinazione, tipo di file di origine, altezza massima dell’immagine ridimensionata, forza l’aumento dell’immagine.
In questa funzione ci sono alcuni passaggi importanti:

  • Primo fra tutti è questo comando: ini_set(“memory_limit”,”256M”); Questo comando serve per aumentare la memoria disponibile per l’esecuzione di uno script php. E’ un parametro che si può impostare direttamente nel php.ini sul server, ma volendolo tenere basso o non potendolo cambiare direttamente si usa questo comando per cambiarlo (nel nostro caso aumentarlo a 256 Mb) solo per la durata dello script. Non usando questo comando non vi saranno problemi finchè si caricheranno immagini di piccola dimensione, ma potrebbero sorgerne con immagini più grandi, come quelle scattate con le macchine fotografihe moderne
  • Nel nostro caso se non viene passata un’altezza massima negli input la settiamo a 600 pixel, che è un’altezza ragionevole per vedere le foto nel web senza dover fare nella maggior parte dei casi lo scroll su e giù
  • Calcoliamo le nuove dimensioni in base all’altezza massima impostata e carichiamo l’immagine in un oggetto in base al tipo di immagine che è stato specificato
  • Se l’altezza dell’immagine originale è maggiore di quella richiesta (bisogna ridurre l’immagine) o se si vuole forzare l’ingrandimento (in modo che, ad esempio, un’immagine di 64 pixel diventi di 800 pixel), allora il sistema crea l’immagine nuova con le nuove dimensioni, altrimenti restituisce la stessa immagine in jpeg.

A presto,

Category: PHP

Your email address will not be published. Required fields are marked *

*

O5VGzW

Please type the text above: