Marca de Agua

3 08 2009

Agregar una marca de agua instantáneamente a una imagen es fácil, puedes cambiar este script para que muestre o no un rectángulo detrás del texto o para que el texto tenga un color diferente

<?php

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

if(!isset($_GET&#91;'imagen'&#93;)) {
	$imagen = '';
	$ext = ''; 
} else {
	$imagen = $_GET&#91;'imagen'&#93;;
	$ext = strtolower(end(explode(".",$_GET&#91;'imagen'&#93;))); // Obtenemos así la extensión de la imagen 
} 

$url=$_GET&#91;'texto'&#93;; // Texto con el que marcaremos la imagen 
if(!isset($_GET&#91;'texto'&#93;)) {
	$url='Marca de agua';// Texto por defecto, puedes cambiarlo 
}

$validext = array("jpeg","jpg","png","gif"); // Definimos las extensiones válidas 

if(empty($imagen) || !in_array($ext,$validext) || !file_exists($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($imagen);
	} elseif($ext == "gif") {
		$im = imagecreatefromgif($imagen);
	} else {
		$im = imagecreatefrompng($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
	//esta parte la puedes quitar (lo que esta entre este y el siguiente comentario ) 
		$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 el texto en la imagen 

	imagestring($im,20,0,$alto-20,$url,$negro);
	imagejpeg($im,'',90);
} 
?>

dentro de una pagina se le llamaria asi:
<img src=”marcadeagua.php?imagen=valderrama.jpg&texto=pibe” alt=”marca_de_agua”>

suponiendo que tu archivo fue llamado marcadeagua.php , tu imagen fue valderrama.jpg y querias marcarla con el texto ‘pibe’

marac_de_agua

Anuncios

Acciones

Information

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: