Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Marcar Imágenes en PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Marcar Imágenes en PHP

Marcar Imágenes en PHP

Con bastante frecuencia me encuentro a webmasters preocupados por que otros webmasters les roben sus imágenes o que las pongan en otras webs sin mencionar el sitio original. Una solución bastante eficiente para este problema es añadir una marca en una parte de la imagen con la url de nuestro sitio web de tal forma que cuando alguien la coloque en algún otro lugar siempre se podrá ver de donde proviene

Esto se puede hacer facilmente con PHP gracias a la biblioteca gráfica GD. Primero guardaremos las imágenes que vayamos a mostrar con la marca en un directorio que no sea accesible desde la web como puede ser un directorio protegido con htaccess o en su defecto un directorio con un nombre extraño, para que nadie lo pueda encontrar. Nosotros las guardaremos en /imgimgimgimgxz321zx/ . Crea un directorio en el directorio raiz de tu web que siga las directrices que hemos explicado y sube ahí las imágenes.

Una vez hecho esto, necesitaremos el script PHP que muestra la imagen con su marca. Veamos como hacerlo:

<?php

header("Contet-type: image/jpeg"); // Esto indica al navegador que se le va a enviar datos de imagen

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 = '/var/www/imgimgimgimgxz321zx/'; // Aquí va la ruta completa hacia el directorio donde se encuentran las imágenes

$url = 'www.webtaller.com'; // Texto con el que marcaremos la imagen

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

$bg = imagecolorallocate ( $im , 255 , 255 , 255 ); // El primer color que indiquemos será el color de fondo
$textcolor = imagecolorallocate ( $im , 0 , 0 , 0 ); // Color negro para el texto

imagestring ( $im , 5 , 120 , 100 , "Error" , $textcolor ); // Escribimos "Error" en la imagen

imagejpeg($im,'',90); // Mostramos la imagen por pantalla con una calidad de 90

} else { // Aquí debemos marcar la imagen que nos pasan por parámetro y mostrarla

if($ext == "jpeg" || $ext == "jpg") { // Creamos una imagen desde una imagen jpeg

$im = imagecreatefromjpeg($dir.$imagen);

} elseif($ext == "gif") {

$im = imagecreatefromgif($dir.$imagen);

} else {

$im = imagecreatefrompng($dir.$imagen);

} // A partir de aquí ya tenemos la imagen en $im, solo queda marcarla

$blanco = imagecolorallocate ( $im , 255 , 255 , 255 );
$negro = imagecolorallocate ( $im , 0 , 0 , 0 );

$ancho = imagesx($im); // Ancho de la imagen
$alto = imagesy($im); // Alto

/* 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)+5; // Cálculamos lo que ocupa el texto en ancho
$recuadro_alto = $fontheight+5;

imagefilledrectangle($im,0,$alto-20,$recuadro_ancho,$alto-5+$recuadro_alto,$blanco);

// Por último escribimos la url de nuestro sitio en la imagen

imagestring($im,20,0,$alto-20,$url,$negro);

imagejpeg($im,'',90);

}

?>

Guardaremos este código en un archivo llamado "mostrar.php" y ya está! Ya tenemos el script que nos marca las imágenes!

Ahora solo queda utilizarlo en nuestra web. Por ejemplo donde antes teníamos la imagen así:

<img src="coche.jpg">

Ahora la tendremos que poner así:

<img src="mostrar.php?imagen=coche.jpg">

Por supuesto, la imagen coche.jpg debe estar en el directorio que ya mencionamos anteriormente y ahora si abrirmos nuestra web veremos como aparece la imagen imagen con una marca abajo a la izquierda con la url de nuestra web.

A partir de esta idea se pueden conseguir otros tipos de marcas como por ejemplo poner el logo de la web o que el texto sea más transparente y no dañe tanto a la imagen. Puedes encontrar más información sobre la biblioteca GD aquí http://es2.php.net/gd

Y aquí un ejemplo de lo que hace este script:

Antes Después

 



Usuarios que han visto este tema también han visto...

- Profiling en PHP: ¿qué partes consumen más?
- Proteger páginas por HTTP en PHP
- Introducción rápida a las sesiones
- Comprimir un archivo en el servidor en PHP
- La directiva register_globals en PHP 4.2.0


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 24-05-2012 a las 03:11:09