/*
 *
 * Métodos de la clase
 * #############################################################################
 * chkQuality() - Valida los valores de calidad de la imagen
 * chkType() - Valida los tipos de imagen, por defecto pone IMAGETYPE_PNG
 * getImageInfo() - Obtiene el ancho, alto, tipo, color y tipo mime de la imagen
 * getImageSize() - Si se da un tamaño de referencia calcula el ancho y alto para mantener
 *                  proporcional una imagen local. En caso contrario devuelve el ancho y alto
 *                  de la imagen.
 * getRemoteImageSize() - Si se da un tamaño de referencia calcula el ancho y alto necesario
 *                        para mantener proporcional yuna imagen remota. En caso contrario 
 *                        devuelve el ancho y alto de la imagen.
 * getImageType() - Obtiene el tipo de imagen (jpg, png, webp, gif or bmp)
 * getImgTypeName() - Obtiene el nombre del tipo de imagen.
 * imagecopymergealpha() - Parche para corregir problemas con los alpha channels en imagecopymerge
 * initImg() - Inicializa la clase con los valores necesarios para cada operación
 * initBackup() - Copia las opciones de inicio para ejecutar subprocesos sin perderlas
 * initRestore() - Restaura las opciones de inicio tras ejecutar subprocesos 
 * loadImg() - Carga un archivo de imagen para procesarlo
 * outImg() - Saca a la salida estándar el recurso de imagen procesado
 * resampleImg() - Reescala y vuelve a muestrear una imagen
 * resizeImg() - Reescala una imagen a un ancho y alto o porcentaje 
 * saveImg() - Graba la imagen procesada en un archivo
 * scaleStamp() - Escala la imagen de estampa para las huellas de agua
 * showImg() - Muestra el recurso de imagen procesada
 * addWatermark() - Añade una estampa desde un archivo PNG transparente a la imagen a procesar
 * cropImg() - Corta la imagen
 * rotateImg() - Rota la imagen
 * flipImg() - Voltea la imagen
 * pdfThumb() - Crea una miniatura de un PDF
 * renderText() - Genera una imagen renderizando el texto suministrado
 * getExifInfo() - Obtiene la información Exif de la imagen mediante exiftool
 * getICCInfo() - Obtiene el perfil ICC de la imagen mediante exiftool
 * imagecreatefrombmp() - Genera un recurso de imagen de un BMP (para versiones 
 *                        de PHP que no lo soportan)
 */


img::initImg()
/**
 * Inicializa la clase con el array conf
 * image = Recurso de imagen con el que trabajar
 * stamp = Recurso PNG de la estampa para la huella de agua
 * imagefile = Archivo de imagen para sobreescribir el recurso de imagen
 * stampfile = Archivo PNG con la estampa para la huella de agua (sobreescribe el recurso stamp)
 * filename = Nombre del archivo que se genera (aleatorio por defecto)
 * width = Ancho para reescalar las imágenes
 * height = Alto para reescalar las imágenes
 * scale = Porcentaje para reescalar las imágenes
 * pct = Porcentaje de transparencia para la estampa en las huellas de agua
 * stampps = Porcentaje del tamaño de la estampa
 * stampos = Posición de la estampa [ul|ur|center|ll|lr] (Upper Left, Upper Right, Centrado, Lower Left, Lower Right)
 * type = Constante IMAGETYPE de cada tipo de imagen
 * quality = Compresión de jpeg, webp o png
 * debug = True para mostrar información de depuración
 *
Para la función renderText():
 * font_size = Tamaño de la fuente
 * font_color = Array con el color RGB del texto, por defecto [55,55,55]
 * font_ttf_path = Ruta completa al directorio que contiene el archivo TTF (opcional)
 * font_ttf = Nombre del archivo TTF, con o sin extensión (opcional)
 *
 * 
 * @param array $conf conf values to use with show, save, resize & watermark
 */

Use:
$cnf['conf_param'] = 'conf_value';
$wv->img->initImg($cnf);



Ejemplos



Reescalar y guardar imagen:
//Configuración
$conf['quality'] = 85; //Compression quality
$conf['pct'] = 60; //Transparency
$conf['imagefile'] = "/path/to/origin/image.jpg"; //origin image
$conf['width'] = 480; //Resize to 480px width
$conf['type'] = IMAGETYPE_JPEG; //Save as jpeg
$conf['filename'] = "/path/to/file/image.jpg"; //Target file name

//Genera la imagen
$wv->img->initImg($conf);
$wv->img->resizeImg();
$wv->img->saveImg();

Añadir marca de agua:
//Configuración
$conf['quality'] = 80; //Compression quality
$conf['stampps'] = 20; //Stamp percent size
$conf['stampos'] = 'center'; //stamp position (ul, ur, center, ll, lr)
$conf['pct'] = 40; //Transparency
$conf['stampfile'] = "/path/to/watermark.png"; //stamp image
$conf['imagefile'] = "/path/to/origin/image.jpg"; //origin image
$conf['width'] = 1024; //Resize to 1024px width
$conf['type'] = IMAGETYPE_JPEG; //Save as jpeg
$conf['filename'] = "/path/to/file/image.jpg"; //Target file name

//Genera la imagen
$wv->img->initImg($conf);
$wv->img->resizeImg();
$wv->img->saveImg();

Generar una imagen con un texto:
//Configuración
$conf['filename'] = $wv->randPass(8,2);
$conf['font_ttf'] = 'Arial'; //Fuente de letra TTF
$conf['font_ttf_path'] = /ruta/al/archivo/; //Directorio que contiene el archivo ttf
$conf['font_size'] = 20; //Tamaño de la fuente
$conf['font_color'] = [0,0,0]; //Color de la fuente en RGB (negro)

//Genera la imagen
$wv->img->init($conf);   
$wv->img->renderText('¡Hola mundo!');
$wv->img->show();


/*
 * Se puede usar sin ningún parámetro, por defecto se usan estos valores:
 * Tipo de letra: HelveticaNeue
 * Tamaño: 11
 * Color: (55,55,55)
 * Nombre de archivo: Aleatorio
 *
 */

//Genera la imagen
$wv->img->initImg();   
$wv->img->renderText('¡Hola mundo!');
$wv->img->showImg();

Fuentes válidas por defecto (sin configurar path ni archivo de fuente):
Andale_Mono, Arial_Black, Arial_Bold_Italic, Arial_Bold, Arial_Italic, Arial, Comic_Sans_MS_Bold, Comic_Sans_MS, Courier_New_Bold_Italic, Courier_New_Bold, Courier_New_Italic, Courier_New, FreeMonoBoldOblique, FreeMonoBold, FreeMonoOblique, FreeMono, FreeSansBoldOblique, FreeSansBold, FreeSansOblique, FreeSans, FreeSerifBoldItalic, FreeSerifBold, FreeSerifItalic, FreeSerif, Georgia_Bold_Italic, Georgia_Bold, Georgia_Italic, Georgia, HelveticaNeueBoldItalic, HelveticaNeueBold, HelveticaNeueCondensedBlack, HelveticaNeueCondensedBold, HelveticaNeueItalic, HelveticaNeueLightItalic, HelveticaNeueLight, HelveticaNeueMedium, HelveticaNeue, HelveticaNeueUltraLightItalic, HelveticaNeueUltraLight, Impact, Times_New_Roman_Bold_Italic, Times_New_Roman_Bold, Times_New_Roman_Italic, Times_New_Roman, Trebuchet_MS_Bold_Italic, Trebuchet_MS_Bold, Trebuchet_MS_Italic, Trebuchet_MS, Ubuntu-BI, Ubuntu-B, Ubuntu-C, Ubuntu-LI, Ubuntu-L, Ubuntu-MI, UbuntuMono-BI, UbuntuMono-B, UbuntuMono-RI, UbuntuMono-R, Ubuntu-M, Ubuntu-RI, Ubuntu-R, Verdana_Bold_Italic, Verdana_Bold, Verdana_Italic, Verdana, Webdings.
//Uso indicando una fuente, por ejemplo, Ubuntu Regular de 14pt:

$conf['font_ttf'] = 'Ubuntu-R'; 
$conf['font_size'] = 14;

$wv->img->initImg($conf);   
$wv->img->renderText('¡Hola mundo!');
$wv->img->showImg();