Ya sea porque queramos proteger las fotos que aparecen en nuestro blog, o por que nuestro cliente quiere proteger las imágenes que aparecen en su web , la única manera será poniendo una marca de agua a dichas imágenes. Para esto hay dos soluciones:
– Poner una marca de agua a cada una de nuestras imágenes a través de un programa tercero ( hay numerosas opciones ), sin embargo esta es una opción pobre, ya que para pocas imágenes sirve, pero no para un gran número de imágenes.
– Otra opción es crear un script PHP que meta una marca de agua en todas las imágenes que estén dentro de una determinada carpeta de nuestro FTP.
A continuación, os muestro cómo podéis conseguir esto con un sencillo script, que he redactado a juntando diversas fuentes de internet y personalizando el código. Pasos a seguir :
1. Escogeremos la carpeta en la que vamos a almacenar las imágenes que queremos proteger, por ejemplo: «/inmuebles/imagenes».
2. En dicha carpeta, debemos de crear un archivo «.HTACCESS», con el siguiente código:
{code type=php}
RewriteEngine on
RewriteRule ^(.*\.(gif|jpg|jpeg|png))$ http://miweb.es/inmuebles/imagenes/watermark.php?image=$1&watermark=watermark.png [NC]
{/code}
3. Crearemos un archivo llamado «watermark.php», con el siguiente código:
{code type=php}
 // Cargamos la imagen
  function imagecreatefromfile($image_path)
 {
  // Obtenemos el tipo de imagen
  list($width, $height, $image_type) = getimagesize($image_path);
   switch ($image_type)
   {
    case IMAGETYPE_GIF: return imagecreatefromgif($image_path);
    break;
    case IMAGETYPE_JPEG: return imagecreatefromjpeg($image_path);
    break;
    case IMAGETYPE_PNG: return imagecreatefrompng($image_path);
    break;
     default: return »;
     break;
   }
 }
// Cargar la imagen en la memoria, y obtener sus dimensiones
  $image = imagecreatefromfile($_GET[‘image’]);
  $width = imagesx( $image );
   $height = imagesy( $image );
  if
     die(‘No se puede cargar la imagen’);
      // Cargar la marca de agua
   $watermark = imagecreatefromfile($_GET[‘watermark’]);
       //dimensiones de la marca de agua
     $watermarkwidth=300;
     $watermarkheight=300;
    if (!$image)
      die(‘No se puede cargar la marca de agua’);
     //Redimensionar la marca de agua según el tamaño de la imagen que queremos  //proteger
      if ( $watermarkwidth>=$width && $watermarkheight>=$height )
       {
    $varx=$watermarkwidth / $width   ;
    $vary=$watermarkheight / $height   ;
    if ($varx>=$vary)
           $water_resize_factor =$width / $watermarkwidth ;
    else
           $water_resize_factor = $height / $watermarkheight;
    }
    elseif ( $watermarkwidth>=$width && $watermarkheight<$height)
     $water_resize_factor =  $width / $watermarkwidth  ;
    else
        $water_resize_factor =  $height / $watermarkheight;
        $new_watermarkwidth  = $watermarkwidth * $water_resize_factor;
        $new_watermarkheight = $watermarkheight * $water_resize_factor;
         $new_watermark = imagecreatetruecolor($new_watermarkwidth , $new_watermarkheight);
         imagealphablending($new_watermark , false);
         imagecopyresampled($new_watermark , $watermark, 0, 0, 0, 0, $new_watermarkwidth, $new_watermarkheight, $watermarkwidth, $watermarkheight);
         $watermarkwidth  = $new_watermarkwidth;
         $watermarkheight = $new_watermarkheight;
         $watermark       = $new_watermark;
    }
//calcular la posicion donde vamos a incrustar nuestra marca de agua
$watermark_pos_x = ( $width-$watermarkwidth ) * .50;
$watermark_pos_y = ($height - $watermarkheight ) * .50;
   //Mezclar imagen y marca de agua
  imagecopy($image, $watermark,  $watermark_pos_x, $watermark_pos_y, 0, 0,imagesx($watermark), imagesy($watermark));
  // Mostrar imagen
  header('Content-Type: image/jpeg');
  imagejpeg($image, '', 100);  // Usar la mejor calidad (100)
     // Borrar las imagens de la memoria
  imagedestroy($image);
  imagedestroy($watermark);
{/code}
4. Por ultimo, debemos de subir a nuestro servidor FTP nuestro archivo «watermark.png», que contendrá nuestra marca de agua. Debemos de subirlo todo al mismo directorio.
Con esto, ya tendremos nuestro script funcionando, y este añadirá automáticamente «marcas de agua» sobre nuestras fotos.
Espero que os sirva para vuestro propósito.

Deja una respuesta