Foros del Web » Programando para Internet » PHP »

APORTE: Crea una marca enimagenes

Estas en el tema de APORTE: Crea una marca enimagenes en el foro de PHP en Foros del Web. Hola, Hice una clase para crear una marca en las imagenes, y es totalmente editable a: Cita: Color Posision Texto Mostrar errores No es para ...
  #1 (permalink)  
Antiguo 13/06/2008, 15:28
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
APORTE: Crea una marca enimagenes

Hola,
Hice una clase para crear una marca en las imagenes, y es totalmente editable a:
Cita:
  • Color
  • Posision
  • Texto
  • Mostrar errores
No es para crear una marca de agua, pero si una marca en la imagen.
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
}
}
?>
Para usarlo es simple como para le siguiente codigo:
Código PHP:
<?php
$m
= new EasyMarca();
$m->text="Probando.";
$m->imagen="imagen.jpg";
$m->marcar();
echo 
$m->ver();
?>
Personalizar:

¿Como puedo cambiar de ubicasion el texto?
Es facil con el siguiente codigo:
Código PHP:
$m->x=80;
$m->y=80
¿Como evitar que me muestre errores?
Se lo anula con:
Código PHP:
$m->error=false
Se anula los errores menos el de la imagen no existente.
¿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
Algunos colores:
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
__________________
Half Music - www.halfmusic.com
  #2 (permalink)  
Antiguo 13/06/2008, 15:37
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: APORTE: Crea una marca enimagenes

Gracias por el aporte Pato12

si pierde calidad la imagen, no es bueno, para las web´s.
pero me parece magnifica tu forma de programar con clases
te felicito

Un saludo
  #3 (permalink)  
Antiguo 13/06/2008, 16:07
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Respuesta: APORTE: Crea una marca enimagenes

Gracias, yo hice el codigo para queno roben las imagenes de una nueva web.
__________________
Half Music - www.halfmusic.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.