Télécharger le code source et suivez les mises à jours sur BitBucket :
http://bitbucket.org/ldbglobe/phpimagefilter/wiki/Home
PNG GIF JPG
Images utilisé dans ces test :
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Save('output/test1.png',1,'PNG')
	->Save('output/test1.gif',1,'GIF')
	->Save('output/test1.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Create(96,96)
	->Save('output/test2.png',1,'PNG')
	->Save('output/test2.gif',1,'GIF')
	->Save('output/test2.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	// Attention aux PNG transparent 
	// Le fond n'est pas toujours aussi uni qu'il y parait
	->Fill(0,0,'FF00FF',0.5)
	->Save('output/test3.png',1,'PNG')
	->Save('output/test3.gif',1,'GIF')
	->Save('output/test3.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Background('FF00FF',0.5)
	->Save('output/test4.png',1,'PNG')
	->Save('output/test4.gif',1,'GIF')
	->Save('output/test4.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Resize(96,48,'force')
	->Save('output/test5.png',1,'PNG')
	->Save('output/test5.gif',1,'GIF')
	->Save('output/test5.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Resize(96,48,'crop')
	->Save('output/test6.png',1,'PNG')
	->Save('output/test6.gif',1,'GIF')
	->Save('output/test6.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Resize(96,48,'ratio')
	->Save('output/test7.png',1,'PNG')
	->Save('output/test7.gif',1,'GIF')
	->Save('output/test7.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Crop(48,48,24,24)
	->Save('output/test8.png',1,'PNG')
	->Save('output/test8.gif',1,'GIF')
	->Save('output/test8.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Background('FF00FF',0.5)
	->Resize(96,48,'crop')
	->Save('output/test9.png',1,'PNG')
	->Save('output/test9.gif',1,'GIF')
	->Save('output/test9.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Rotate(45,'FF00FF',0.25)
	->Resize(96,96,'ratio')
	->Save('output/test10.png',1,'PNG')
	->Save('output/test10.gif',1,'GIF')
	->Save('output/test10.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Flip('horizontal')
	->Save('output/test11.png',1,'PNG')
	->Save('output/test11.gif',1,'GIF')
	->Save('output/test11.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Background('FF00FF',0.5)
	->Blur()
	->Save('output/test12.png',1,'PNG')
	->Save('output/test12.gif',1,'GIF')
	->Save('output/test12.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('rainbow.png')
	// Filtre Stamp = Tampon
	
	// on applique un gradient noir vers blanc en mode ADD (le noir est invisible)
	// Extra = LOOP = true => pas de saturation
	->Stamp('gradient.png',0,0,'add',true)
	
	// on pose par dessus un petit tampon (cas typique du watermark)
	->Stamp('stamp.png','center','center','normal')
	
	->Save('output/test13.png',1,'PNG')
	->Save('output/test13.gif',1,'GIF')
	->Save('output/test13.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('rainbow.png')
	// LOOP = true => pas de saturation
	->Stamp('gradient.png',0,0,'sub',true)
	->Save('output/test14.png',1,'PNG')
	->Save('output/test14.gif',1,'GIF')
	->Save('output/test14.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('rainbow.png')
	// LOOP = False => Effet de saturation au noir ou blanc selon le mode
	->Stamp('gradient.png',0,0,'add',false)
	->Save('output/test15.png',1,'PNG')
	->Save('output/test15.gif',1,'GIF')
	->Save('output/test15.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('rainbow.png')
	// LOOP = False => Effet de saturation au noir ou blanc selon le mode
	->Stamp('gradient.png',0,0,'sub',false)
	->Save('output/test16.png',1,'PNG')
	->Save('output/test16.gif',1,'GIF')
	->Save('output/test16.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('rainbow.png')
	// Filtre ne pouvant pas saturer => pas de paramètre complémentaire
	->Stamp('gradient.png',0,0,'lighten')
	->Save('output/test17.png',1,'PNG')
	->Save('output/test17.gif',1,'GIF')
	->Save('output/test17.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('rainbow.png')
	// Filtre ne pouvant pas saturer => pas de paramètre complémentaire
	->Stamp('gradient.png',0,0,'darken')
	->Save('output/test18.png',1,'PNG')
	->Save('output/test18.gif',1,'GIF')
	->Save('output/test18.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Background('FFFFFF',0)
	->Colorize('FF00FF')
	->Save('output/test19.png',1,'PNG')
	->Save('output/test19.gif',1,'GIF')
	->Save('output/test19.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Background('FFFFFF',0)
	// !!! Ce filtre nécéssite de passer l'image en mode Palette 
	// ce qui implique la perte de la transparence 8 bit
	->ColorReplace('000000','FF00FF')
	->Save('output/test20.png',1,'PNG')
	->Save('output/test20.gif',1,'GIF')
	->Save('output/test20.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Edge()
	->Save('output/test21.png',1,'PNG')
	->Save('output/test21.gif',1,'GIF')
	->Save('output/test21.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Grayscale()
	->Save('output/test22.png',1,'PNG')
	->Save('output/test22.gif',1,'GIF')
	->Save('output/test22.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Mosaic(8,true)
	->Save('output/test23.png',1,'PNG')
	->Save('output/test23.gif',1,'GIF')
	->Save('output/test23.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Negative()
	->Save('output/test24.png',1,'PNG')
	->Save('output/test24.gif',1,'GIF')
	->Save('output/test24.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Sepia()
	->Save('output/test25.png',1,'PNG')
	->Save('output/test25.gif',1,'GIF')
	->Save('output/test25.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Brightness(-100)
	->Save('output/test26.png',1,'PNG')
	->Save('output/test26.gif',1,'GIF')
	->Save('output/test26.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Contrast(-20)
	->Save('output/test27.png',1,'PNG')
	->Save('output/test27.gif',1,'GIF')
	->Save('output/test27.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Sharpen()
	->Save('output/test28.png',1,'PNG')
	->Save('output/test28.gif',1,'GIF')
	->Save('output/test28.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('test.png')
	->Text(array('text'=>'\\\\o//','color'=>'FFFFFF','font'=>'Aller_Rg','glow'=>3,'glow_color'=>'FF00FF','glow_alpha'=>0.2,'y'=>20))
	->Text(array('text'=>'°Oo oO°','color'=>'FFFFFF','font'=>'Aller_Rg','glow'=>3,'glow_color'=>'00FF00','glow_alpha'=>0.2,'y'=>80))
	->Save('output/test29.png',1,'PNG')
	->Save('output/test29.gif',1,'GIF')
	->Save('output/test29.jpg',1,'JPG',90)
	->Flush('PNG');
<?php
require('../src/Image.php');
$imageHandler = new Image();
$imageHandler
	->Open('mushroom.png')
	->Tiltshift(50,50,'center','center',20)
	->Save('output/test30.png',1,'PNG')
	->Save('output/test30.gif',1,'GIF')
	->Save('output/test30.jpg',1,'JPG',90)
	->Flush('PNG');