Unire immagini fianco a fianco in PHP

Mattepuffo's logo
Unire immagini fianco a fianco in PHP

Unire immagini fianco a fianco in PHP

In pratica quello che mi serviva, era di unire una serie di immagini mettendole fianco a fianco.

Considerando che sono tutte alte uguali, e quindi non andremo a controllare eventuali differenze di altezza.

Tutto ciò in PHP.

Questa la funzioncina che ho messo su, che richiede che sia attivata l'estensione GD di PHP.

function mergeImagesSideBySide($images, $path, $finalName) {
	$mw = 0;
	foreach ($images as $image) {
		list($iw) = getimagesize($path . $image);
		$mw += $iw;
	}

	$mergedImage = imagecreatetruecolor($mw, 800);
	imagealphablending($mergedImage, false);
	imagesavealpha($mergedImage, true);

	$posX = 0;
	foreach ($images as $image) {
		list($iw, $ih) = getimagesize($path . $image);
		$img = imagecreatefromjpeg($path . $image);
		imagecopy($mergedImage, $img, $posX, 0, 0, 0, $iw, $ih);
		$posX += $iw;
	}

	imagejpeg($mergedImage, $path . '/' . $finalName);
	imagedestroy($mergedImage);
}

Sicuramente può essere migliorata.

Comunque, passiamo un array di immagini, il path di destinazione, e il nome finale dell'immagine.

Al primo ciclo andiamo a calcolare la larghezza dell'immagine, sommando le larghezze di tutte le immagini.

Nel secondo ciclo, prendiamo le immagini una ad una e ne facciamo una copia, che poi andiamo a mettere in quella finale.

Come vedete, andiamo a calcolare la posizione sull'asse x man mano che scorriamo l'array.

Enjoy!


Condividi

Commentami!