Hice una clase para crear una marca en las imagenes, y es totalmente editable a:
Cita:
No es para crear una marca de agua, pero si una marca en la imagen.- Color
- Posision
- Texto
- Mostrar errores
El class se llama EasyMarca.
Código PHP:
<?php
/**************************************************************************
***************************************************************************
*** Nombre: EasyMarca ***
*** Version: 1.0 ***
*** Creador: Pato12 (de forosdelweb.com) ***
*** Contacto: MensajesPrivados en el forosdelweb.com ***
*** Descripcion: Sirve para poner una marca en tus imagenes para ***
*** que nadie te la robe. ***
***************************************************************************
**************************************************************************/
class EasyMarca{
//////////////////////
//// Variables //////
////////////////////
/*
La variable $text guarda el texto que sera escrita en la imagen.
Para editar se nesesita el siquiente codigo:
$m= new EasyMarca();
$m->text="Mi texto a escribir";
*/
var $text;
/*
La variable $imagen guarda la direcion y nombre de la imagen a editar.
Se lo puede cambiar con el siguiente codigo:
$m= new EasyMarca();
$m->imagen="carpeta/imagen.jpg";
*/
var $imagen;
/*
La variable $x guarda la posision donde se escribira.
El codigo lo escribe en el medio de la imagen.
Se lo puede cambiar con:
$m= new EasyMarca();
$m->x=numero;
*/
var $x;
/*
La variable $y guarda la posision donde se escribira.
El codigo lo escribe en el medio de la imagen.
Se lo puede cambiar con:
$m= new EasyMarca();
$m->y=numero;
*/
var $y;
/*
La variable $blue guarda el porsentaje del color azul que se le pondra al texto.
Se lo puede cambiar con el siguiente codigo:
$m= new EasyMarca();
$m->blue=numero;
*/
var $blue=0;
/*
La variable $blue guarda el porsentaje del color rojo que se le pondra al texto.
Se lo puede cambiar con el siguiente codigo:
$m= new EasyMarca();
$m->red=numero;
*/
var $red=0;
/*
La variable $blue guarda el porsentaje del color verde que se le pondra al texto.
Se lo puede cambiar con el siguiente codigo:
$m= new EasyMarca();
$m->green=numero;
*/
var $green=1;
/*
Si surge algun error en el proceso, notificar o no.
Pra notificar se pone "true" sin comillas y para no
notificar se pone "false" sin comillas.
Se lo puede cambias con el siguiente codigo:
$m= new EasyMarca();
$m->error=true o false;
*/
var $error=true;
/////////////////////////////////////////
/////////// Fin fe variables ///////////
///////////////////////////////////////
/*
*/
/////////////////////////////
//// Funciones Internas ///
//// NO MODIFICAR ////
//////////////////////////
function marcar(){
if(!file_exists($this->imagen))die ('La imagen no existe.');// Verificamos si existe la imagen.
$ex = @substr($this->imagen, -3); // Busca extension
$ext=@strtolower($ex);// Pasamos a minuscula la extencion
switch($ext){
case "jpg":
$image= @imagecreatefromjpeg($this->imagen);
$x_e=@imagesx(@imagecreatefromjpeg($this->imagen));
$y_e=@imagesy(@imagecreatefromjpeg($this->imagen));
break;
case "jpe":
$image= @imagecreatefromjpeg($this->imagen);
$x_e=@imagesx(@imagecreatefromjpeg($this->imagen));
$y_e=@imagesy(@imagecreatefromjpeg($this->imagen));
break;
case "gif":
$image=@imagecreatefromgif($this->imagen);
$x_e=@imagesx(@imagecreatefromgif($this->imagen));
$x_y=@imagesy(@imagecreatefromgif($this->imagen));
break;
case "png":
$image= @imagecreatefrompng($this->imagen);
$x_e=@imagesx(@imagecreatefrompng($this->imagen));
$y_e=@imagesy(@imagecreatefrompng($this->imagen));
break;
default:
if($this->error)die('Archivo no valido.'); // Si no se a encontrado la extencion elejida lo decimos
break;
}
if($this->x=="" and $this->y==""){ // Nos fijamos si no se modifico el lugar donde se escribira
$x=@round($x_e/2);// Redondeamos el numero
$this->x=$x; // Lo guardamos en la variable
$x=@round($x_e/2);// Redondeamos el numero
$this->x=$x;// Lo guardamos en la variable
}
$colText = @imagecolorallocate($image,$this->red,$this->green,$this->blue);// Creamos el color
if(!$colText and $this->error)die ('Error al crear el color de texto.'); // Sino se pudo crear el color lo decimos
$escribir=@imagestring($image,5,$this->x,$this->y,$this->text,$colText); // Escribimos el texto
if(!$escribir and $this->error)die ('Error al marcar la imagen.');// Si no se pudo escribir lo decimos
switch($ext){
case "jpg":
$crear=@imagejpeg($image,$this->imagen);
break;
$crear=@imagejpeg($image,$this->imagen);
break;
case "jpe":
$crear=@imagejpeg($image,$this->imagen);
break;
case "gif":
$crear=@imagegif($image,$this->imagen);
break;
case "png":
$crear=@imagepng($image,$this->imagen);
break;
default:
if($this->error and !$crear)die('Extencion no valido.'); // Si la extencion no es valida lo desimos
break;
}
if(!$crear and $this->error)die ('Error al crear la imagen.');// Si no se pudo crear la imagen lo decimos
@imagedestroy($image);// Destruimos la imagen
}
function ver(){
return "<img src='".$this->imagen."'/>"; // Creanos el codigo HTML para insertar la imagen
}
}
?>
Código PHP:
<?php
$m= new EasyMarca();
$m->text="Probando.";
$m->imagen="imagen.jpg";
$m->marcar();
echo $m->ver();
?>
¿Como puedo cambiar de ubicasion el texto?
Es facil con el siguiente codigo:
Código PHP:
$m->x=80;
$m->y=80;
Se lo anula con:
Código PHP:
$m->error=false;
¿Como cambio el color del texto?
Es un poco complicado porque hay que poner cuanto prosentaje de cada color (rojo,azul,verde) con el siguiente codigo:
Código PHP:
$m->green=1;
$m->blue=50;
$m->red=78;
Negro: 0 0 0
Blanco: 250 250 250
Comentario:
El codigo sirve de 10, pero le saca un poco la calidad de la imagen y una ves ya editado ya no se borra.
Espero sus comentarios.
Graicas
Salu2