Il primo effetto consta nella separazione dei colori RGB.
Viene caricata tre volte la stessa immagine ed assegnata a tre variabili diversi, quindi filtrate ciascuna con
IMG_FILTER_GRAYSCALE che Converte l'immagine in scala di grigi.
IMG_FILTER_COLORIZE che applica un filtro di colore all’immagine.
La componente Alpha non è utilizzata.
I colori, rispettivamente Red, Green, Bleu di ciascuna immagine non sono assoluti, ma hanno una componente degli altri 2.
<?php
header("Content-type: image/png");
// carica immagine
$ImmagineR =
imagecreatefrompng ('savana.png');
$ImmagineG =
imagecreatefrompng ('savana.png');
$ImmagineB =
imagecreatefrompng ('savana.png');
// Converte l'immagine in scala di grigi
imagefilter ($ImmagineR, IMG_FILTER_GRAYSCALE);
imagefilter ($ImmagineG, IMG_FILTER_GRAYSCALE);
imagefilter ($ImmagineB, IMG_FILTER_GRAYSCALE);
// dominante rossa
imagefilter ($ImmagineR, IMG_FILTER_COLORIZE, 255, 50, 75);
imagepng ($ImmagineR,"NomeFile_rosso.png"); // salva
// dominante verde
imagefilter ($ImmagineG, IMG_FILTER_COLORIZE, 10, 255, 0);
imagepng ($ImmagineG,"NomeFile_verde.png"); // salva
// dominante blu
imagefilter ($ImmagineB, IMG_FILTER_COLORIZE, 20, 17, 255);
imagepng ($ImmagineB,"NomeFile_blu.png"); // salva
imagepng ($ImmagineB); // al browser
// libera memoria
imagedestroy ($ImmagineR); imagedestroy ($ImmagineG);imagedestroy ($ImmagineB);
?>
Risultato: