Tambien tenes la clase de PEAR,
Image_Transform, pero realmente no es muy practica. Lo que si soporta GD, ImageMagick, Imagick y NetPBM. Aunque de esta clase podemos sacar algunas ideas y un poco de codigo.
Estuve viendo la tuya y no estaría mal organizarla de otra manera, ejemplo:
Código:
- Image/
Info.php
Gd.php
Magik.php
Imagik.php
Netpbm.php
Image.php
Lo que antes era ImageInfo, se convierte en Image_Info (Info.php).
Image (Image.php) es la que toma el control y crea una instancia del objeto que necesita.