Este MOD escribe un texto en las imágenes que ven los usuarios (normalmente la url del sitio) y redimensiona las imágenes para que se vean dentro de los tamaños predeterminados de los templates. Lo bueno es que hace todo lo anterior sin editar los archivos originales.
Dentro de las redimensiones está diseñado para 3 tamaños. Por ejemplo: uno mediano para ver en el sitio, uno grande para que aparesca en una nueva ventana y uno pequeño para… bueno, no lo se… pero dejé 3 tamaños que pueden ser editados en el archivo mostrar_config.php.
Si quieres ver un ejemplo pueden entrar a mi sitio
www.fotobomberos.comArchivos a modificar:* Recuerda respaldar.include/functions.php
Nuevos archivos:mostrar.php
mostrar_config.php
Creación de nuevos archivos:mostrar.php<?php
// Realizado por ExeFire - exefire@gmail.com
header("Contet-type: image/jpeg"); // Esto indica al navegador que se le va a enviar datos de imagen
include ('mostrar_config.php'); //agregamos la variables desde la pagina de configuración
/* Lee la variable de tamaño que utilizaremos
$valor_max_width Es la constante de ancho máximo
$valor_max_width Es la constante de alto máximo
*/
if ($_GET['tam'] !=''){
$tam = $_GET['tam'];
switch ($tam){
case '1':{
$valor_max_width = $cons_ancho1;
$valor_max_height = $cons_alto1;
break;}
case '2':{
$valor_max_width = $cons_ancho2;
$valor_max_height = $cons_alto2;
break;}
case '3':{
$valor_max_width = $cons_ancho3;
$valor_max_height = $cons_alto3;
break;}
}
}
if(!isset($_GET['imagen'])) {
$imagen = '';
$ext = '';
} else {
$imagen = $_GET['imagen'];
$ext = strtolower(end(explode(".",$_GET['imagen']))); // Obtenemos así la extensión de la imagen
}
$validext = array("jpeg","jpg","png","gif"); // Definimos las extensiones válidas
$dir = $dir.'/';
if(empty($imagen) || !in_array($ext,$validext) || !file_exists($dir.$imagen)) {
// Si no se ha enviado una imagen como parámetro o la extensión no es válida,
//enviaremos una imagen de error
$im = imagecreate ( 320 , 240 ); // Tamaño de la imagen de la imagen de error
$bg = imagecolorallocate ( $im , 0 , 0 , 0); // El primer color que indiquemos será el color de fondo
$textcolor = imagecolorallocate ( $im , 255 , 255 , 255 ); // Color negro para el texto
imagestring ( $im , 5 , 120 , 100 , "Error" , $textcolor ); // Escribimos "Error" en la imagen
imagejpeg($im,'',75); // Mostramos la imagen por pantalla con una calidad de 75
} else { // Aquí debemos marcar la imagen que nos pasan por parámetro y mostrarla
$imginfo = getimagesize($dir.$imagen);
if ($imginfo == null) {
$error = "ERROR: El archivo fuente no se encontro!";
return false;
}
// ancho/alto del archivo fuente
$srcWidth = $imginfo[0];
$srcHeight = $imginfo[1];
//analiza si hay que redimensionar la imagen comparando con nuestras constantes de tamaño máximo
$width1 = $srcWidth+20;
$height1 = $srcHeight+20;
if ($srcWidth > $valor_max_width) {
$width2 = $valor_max_width;
$height2 = $srcHeight * $valor_max_width / $srcWidth;
} else
$width2 = $srcWidth;
if ($srcHeight > $valor_max_height) {
$width2 = $srcWidth * $valor_max_height / $srcHeight;
$height2 = $valor_max_height;
} else
$height2 = $srcHeight;
//escribe los valores analizados anteriormente en las variables originales
$destWidth = $width2;
$destHeight = $height2;
// Verifica las funciones GD2 estén instaladas
if (!function_exists('imagecreatefromjpeg')) {
$error = "la libreria de GD2 de imagenes no esta instalada!";
return false;
}
if (!function_exists('imagecreatetruecolor')) {
$error = "No existe la funcion imagecreatetruecolor de la libreria GD2 de imagenes!";
return false;
}
if($ext == "jpeg" || $ext == "jpg") { // Creamos una imagen desde una imagen jpeg
$imXX = imagecreatefromjpeg($dir.$imagen);
} elseif($ext == "gif") {
$imXX = imagecreatefromgif($dir.$imagen);
} else {
$imXX = imagecreatefrompng($dir.$imagen);
}
$im = imagecreatetruecolor($destWidth, $destHeight);
// A partir de aquí ya tenemos la imagen en $im, ahora a escribir el texto
$blanco = imagecolorallocate ( $im , 0 , 0 , 0 ); // Color de fondo del cuadro de texto
$negro = imagecolorallocate ( $im ,255 , 255 , 255 ); // Color del texto
$ancho = $destWidth; // Ancho de la imagen que se mostrará
$alto = $destHeight; // Alto de la imagen que se mostrará
// Ahora dibujaremos un rectángulo para que no tengamos problemas si
//la imagen es del mismo color que le texto que vamos a escribir en ella
$fontwidth = imagefontwidth(5);
$fontheight = imagefontheight(5);
$recuadro_ancho = $fontwidth*strlen($url); // Cálculamos lo que ocupa el texto en ancho
$recuadro_alto = $fontheight;
imagecopyresampled($im, $imXX, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
imagefilledrectangle($im, $ancho-10 -$recuadro_ancho ,$alto-20,$ancho,$alto-5+$recuadro_alto,$blanco);
// Por último escribimos el texto de nuestro sitio en la imagen
imagestring($im,20,$ancho -$recuadro_ancho-5,$alto-20,$url,$negro);
imagejpeg($im, '', "80"); //se escribe la imagen con una calidad de 80
}
?>
Guardar cambios.mostrar_config.php<?php
// Realizado por ExeFire - exefire@gmail.com
// Aquí va la ruta completa hacia el directorio data/media
$ruta_media = 'var/html/www/data/media/';
$dir = $ruta_media.$_GET['cat_x'];
// Texto que se escribirá la imagen
$url = 'www.sitioweb.com';
// Determinar constantes de tamaños:
// Tamaño 1
$cons_ancho1 = 320;
$cons_alto1 = 240;
// Tamaño 2
$cons_ancho2 = 500;
$cons_alto2 = 375;
// Tamaño 3
$cons_ancho3 = 1600;
$cons_alto3 = 1600;
?>
Aquí debes editar la ruta de la carpeta data/media.
Guardar cambios.Modificación:include/functions.phpBuscar:
"media_src" => $media_src,
Cambiar por:
"media_src" => "mostrar.php?cat_x=$cat_id&imagen=$media_file_name&tam=2", //"media_src" => $media_src,
Buscar:
"width_height" => $width_height,
Cambiar por:
"width_height" => '', //"width_height" => $width_height,
Buscar:
"width" => $width,
Cambiar por:
"width" => '', //"width" => $width,
Buscar:
"height" => $height,
Cambiar por:
"height" => '', //"height" => $height,
Guardar cambios.Las explicaciones del funcionamiento están hechas dentro del texto de mostrar.php y para perzonalizar el texto y los tamaños se debe editar en mostrar_config.php.
Para variar los distintos tipos de tamaños se cambia el valor de la variable tam como se ve en el código
mostrar.php?cat_x=$cat_id&imagen=$media_file_name&tam=2 es 2, ósea máximo
500 de ancho y
375 de alto.
De todos modos esta función no está muy pulida que digamos…
Espero pueda ser de ayuda.
Saludos cordiales,