Helper Image.
Funciones para manipular imágenes

Code Helper

Helpers – Image- Manipulaciones de imágenes

Funciones para la manipulación de imágenes y sus caracterísicas.

/**
 * HelperImage.php
 * @author      Code Develium
 */

namespace Helpers;


/**
 * Class HelperImage
 */
abstract class HelpImage
{
    /**
     * Crea una miniatura de un aimagen en función a una proporción
     * indicada.
     * Se puede modificar la calidade de la miniatura.
     * Devuelve true si se ha generado la miniatura o false en otro 
     * caso
     *
     * @param     $nombre_imagen
     * @param     $nombre_mini
     * @param     $proporcion
     * @param int $calidad
     *
     * @return bool
     */
    public static function generarMminiatura( $nombre_imagen,
                                              $nombre_mini, 
                                              $proporcion, 
                                              $calidad = 75)
    {
        // Al archivo ha de existir
        if (! file_exists($nombre_imagen)) {
            return false;
        }

        // Miramos que extensión tiene
        $extension = HelpString::toLower( 
                         HelpFile::getOnlyExtension( $nombre_imagen)
                     );
        if (HelpValidate::isEmpty($extension)) {
            return false;
        }

        if ($extension == 'png') {
            $img = imagecreatefrompng($nombre_imagen);
        } elseif ($extension = 'jpg') {
            $img = imagecreatefromjpeg($nombre_imagen);
        } else {
            // Otra extensión
            return false;
        }

        // Dimensiones actuales de la imagen
        $ancho_actual = imagesx($img);
        $alto_actual  = imagesy($img);


        // Calculamos las dimenstions de la miniatura
        $ancho_mini = $ancho_actual * $proporcion;
        $alto_mini  = $alto_actual * $proporcion;

        // Creamos imagen contenedor con la misma proporción
        $img_miniatura = imagecreatetruecolor( $ancho_mini, 
                                               $alto_mini);

        // Copiamos la imagen original a la reducida
        imagecopyresized($img_miniatura, 
                         $img, 
                         0, 0, 0, 0, 
                         $ancho_mini, 
                         $alto_mini, 
                         $ancho_actual, 
                         $alto_actual);

        // Generamos la miniatura
        imagejpeg($img_miniatura, $nombre_mini, $calidad);
        return true;

    }
}