Piero V.

Transparents thumbs [Flatpress]

English

I’ve added some code to thumb plugin that allows the get transparent thumbs with GIFs and PNGs files.

I’ve taken this code from a comment of the imagecopyresampled PHP function.

Open fp-plugins/thumb/plugin.thumb.php with a text editor and replace:

	$scaled = imagecreatetruecolor($new_width, $new_height);
	imagecopyresampled($scaled, $image, 0, 0, 0, 0, $new_width, $new_height, $infos[0], $infos[1]);

with

	$scaled = imagecreatetruecolor($new_width, $new_height);

	/*
	 * If gif or png preserve the alpha channel
	 *
	 * Added by Piero VDFN
	 * Kudos to http://www.php.net/manual/en/function.imagecopyresampled.php#104028
	 */
	if($infos[2]==1 || $infos[2]==3) {
		imagecolortransparent($scaled, imagecolorallocatealpha($scaled, 0, 0, 0, 127));
		imagealphablending($scaled, false);
		imagesavealpha($scaled, true);
		$output=$infos[2]==3 ? 'png' : 'gif';
	} else {
		$output='jpg';
	}

	imagecopyresampled($scaled, $image, 0, 0, 0, 0, $new_width, $new_height, $infos[0], $infos[1]);

Now, replace some lines belove imagejpeg($scaled, $thumbpath); with:

	if($output=='png') {
		imagepng($scaled, $thumbpath);
	} elseif($output=='gif') {
		imagegif($scaled, $thumbpath);
	} else {
		imagejpeg($scaled, $thumbpath);
	}

And now you will have thumbs with the alpha channel 😉

Italiano

Ho modificato il plugin thumb affinché mantenga la trasparenza nelle immagini PNG e GIF.

In realtà ho preso il codice da un commento della funzione imagecopyresampled di PHP, perciò dobbiamo ringraziare l’autore di quel listato di codice.

Per prima cosa apriamo fp-plugins/thumb/plugin.thumb.php, sostituiamo il primo listato di codice con il secondo.

Dopodiché andiamo qualche linea sotto e sostituiamo imagejpeg($scaled, $thumbpath); con il terzo listato di codice.

Ora, se abbiamo qualche thumb errata eliminiamola e come per magia avremo la thumb corretta non appena ricaricheremo il post con l’immagine desiderata.

4 commenti