/*
*
* 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();