Una cosa:
Cuando vamos a modificar el ancho o alto de la imagen, antes comprobamos si es mayor que el tamaño que queremos con esto:
Código PHP:
if($image->getWidth() > 400){
$image->resizeToWidth(400);
$w400 = 'w400_' . $_FILES['image']['name'];
$image->save($w400);
}
no seria mejor anadir esa comprobación a la clase para llamarlo simplemente así:
Código PHP:
$image->resizeToWidth(400);
$w400 = 'w400_' . $_FILES['image']['name'];
$image->save($w400);
Como ya le pasamos el valor 400, en este caso, dentro de la clase podriamos hacer esto:
Código PHP:
public function resizeToWidth($width) {
if($this->getWidth()>$width){
$ratio = $width / $this->getWidth();
$height = $this->getHeight() * $ratio;
$this->resize($width, $height);
}
}
Edito: Ahora veo que lo malo de esto es que entonces, esta funcion dejaria de funcionar si quisieramos redimensionar la imagen para agrandarla...