Exemple de base

 


test.png


testStamp.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
include('./class.ImageFilter.php');

//******************************************************************************
// on ouvre une image et on applique des filtres
//******************************************************************************
$IF=new ImageFilter;
$IF->loadImage('test.png');
$IF->resize('200%','','force',true);
$IF->setColorsToWork(16); // default = 256
//$IF->colorize(0,0,0,0); // filtre neutre => appliquera la réduction de couleur
//$IF->colorize(10,255,0,0); 
//$IF->grayscale();
$IF->sepia();
//$IF->negative();
$IF->mosaic(3);

//******************************************************************************
// on prépare un tampon avec couche alpha (source PNG)
//******************************************************************************
$IF2=new ImageFilter;
$IF2->loadImage('testStamp.png');
//!!! les filtres posent problème pour le gestion de la transparence
//$IF2->negative();

//******************************************************************************
// on applique le tampon en 0/0 sur la première image
//******************************************************************************
$IF->stamp($IF2->resourceImage,0,0);
$IF2->clear(); //on libère la mémoire

//******************************************************************************
// on vas à présent placer l'image "1" sur une surface de taille fixe
//******************************************************************************
$IF->resize('160','120','ratio',true); //redimensionnement (étirement autorisé)
$info=$IF->getImageSize(); //on récupère les dimensions (à cause du ratio)

$IF3=new ImageFilter//on crée notre support
$IF3->createImage(160,120);
$IF3->fill(0,0,155,155,200); //on rempli la surface depuis le point 0,0 de l'image avec un couleur R,G,B
$IF3->stamp($IF->resourceImage,(160-$info['w'])/2,(120-$info['h'])/2); // on applique l'image 1 centré dans notre support
$IF->clear(); //on libère la mémoire de l'image 1 (il nous reste l'image 3 pour l'affichage)

//******************************************************************************
// et voila la résultat
//******************************************************************************
$IF3->output('PNG');
?>