Anexsoft | Blog y dictado de cursos de Tecnología

En este encontrarás tutoriales de tecnología como PHP, ASP.NET MVC, Front-End, entre otros y cursos exigentes de modalidad online que te ayudarán a crecer profesionalmente.

Marca de agua para imágenes con PHP
Actualizado el 04 Enero, 2015 y leído 2,594 veces
Calificación: 6.00 / 10

Marca de agua para imágenes con PHP

Anexsoft

Señores en esta entrada vamos a enseñar como crear una marca de agua con una clase que hice para automatizar este proceso pero antes vamos a definir para que queremos una marca de agua.

Marca de agua:

  • El watermarking o marca de agua digital es una técnica esteganográfica de ocultación de información. Su objetivo principal es poner de manifiesto el uso ilícito de cierto servicio digital por parte de un usuario no autorizado. Según la wikipedia

  • Se usa para evitar que otros usen nuestro material agregando un sello para evitar el fraude. Muy usado en fotografías. Segun yo


class MarcaDeAgua{

// Configuracion
private $ancho = 0;
private $alto = 0;
private $fuente = '';
private $fuente_tamano = 0;

// Imagen
private $imagen = '';
private $nueva_imagen = null;

// Texto
private $texto = '';
private $color = array();

public function Configurar($i, $w, $h, $f_t = 15, $f = 'libs/font-2.ttf')
{
$this->imagen = $i;
$this->ancho = $w;
$this->alto = $h;
$this->fuente = $f;
$this->fuente_tamano = $f_t;
}

public function AgregarTexto($texto, $color = array(255, 255, 255))
{
$this->texto = $texto;
$this->color = $color;
}

public function Preparar(){
// Creamos la imagen
$img = imagecreatefromjpeg($this->imagen);

// Obtenemos los datos de tamaño
$img_data = getimagesize($this->imagen);

// Le asignamos el nuevo tamaño
$this->nueva_imagen = imagecreatetruecolor($this->ancho, $this->alto);
imagecopyresized($this->nueva_imagen, $img, 0, 0, 0, 0, $this->ancho, $this->alto, $img_data[0], $img_data[1]);

// Agregamos el texto
$color_elegido = ImageColorAllocate($this->nueva_imagen, $this->color[0], $this->color[1], $this->color[2]);
$color_negro = ImageColorAllocate($this->nueva_imagen, 0, 0, 0); // NEGRO

// Coordenadas de donde va a ir el texto
$x = $this->fuente_tamano;
$y = $this->alto - $this->fuente_tamano;

// El texto negro para que lo usaremos como borde
imagettftext($this->nueva_imagen, $this->fuente_tamano, 0, $x - 4, $y - 4, $color_negro, $this->fuente, $this->texto);
imagettftext($this->nueva_imagen, $this->fuente_tamano, 0, $x + 4, $y + 4, $color_negro, $this->fuente, $this->texto);

// El texto blanco
imagettftext($this->nueva_imagen, $this->fuente_tamano, 0, $x, $y, $color_elegido, $this->fuente, $this->texto);
}

public function Renderizar(){
header("Content-type: image/png");
ImagePNG($this->nueva_imagen);
}

public function Guardar(){
// Remplaza la imagen actual por la nueva
}

public function Obtener(){
// Obtiene la nueva imagen
}
}


Como funciona esto, pues es muy fácil. Lo que tenemos que hacer es configurar, agregar el texto y renderizar tal como lo dice nuestros métodos:

require_once 'libs/marca-de-agua.php';

$obj = new MarcaDeAgua();
$obj->Configurar('chuck.jpg', 700, 500, 50, 'libs/font-2.ttf');
$obj->AgregarTexto('Anexsoft');
$obj->Preparar();
$obj->Renderizar();


Detalles a tener en cuenta

  • Cuando descarguen el proyecto notaran una carpeta que se llama libs, dentro debemos agregar las posibles fuentes a usar

  • El método Configurar recibe los siguientes parámetros en este orden: (ruta de la imagen, ancho, alto, tamaño de la fuente, y fuente)lo 2 últimos parámetros son el tamaño de la fuente y el archivo ttf que contiene la fuente siendo ambos opcionales.

  • El método AgregarTexto recibe 2 parámetros, uno que es el texto a mostrar y el otro el color (es opcional).

  • El método Preparar hace todo el algoritmo para agregar el texto a la nueva imagen

  • El método Renderizar muestra la imagen

  • El método Obtener devuelve la nueva imagen. No esta implementado

  • El método Guardar remplaza la imagen actual por la nuestra. No esta implementado

¡Adquiera ya!

  • Software de Venta e Inventario hecho en PHP y Codeigniter

    Software de Venta e Inventario hecho en PHP y Codeigniter
  • Código de fuente de Red Social desarrollada en ASP.NET MVC

    Código de fuente de Red Social desarrollada en ASP.NET MVC
  • Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

    Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

Últimas publicaciones

Encuesta

¿Cómo nos conociste?

Síguenos

Estudia con nosotros y crece profesionalmente

Nuestros cursos han sido hecho en base a lo que demanda el mercado hoy en día.
La experiencia obtenida es la de un ambiente laboral.

Anexsoft
© 2017 Anexsoft, blog y cursos online de TI.