Este script sirve básicamente para todos aquellos vagos como yo que se cansan o no saben (mi caso) utilizar un programa de fotografía para meterle una marca de agua con el logo chulo de tu web.
Pero para eso está PHP, para suplir con código la falta de tiempo, solo le has de especificar la ruta en la que están tus imágenes y la marca de agua, en esa misma carpeta crear 2 subcarpetas más, "tmp" y "conmarca"; el script se encargará de coger todas las imágenes .jpg y transformarlas en las mismas imágenes pero con la marca de agua incorporada en la carpeta "conmarca".
Tampoco te has de preocupar de eliminar las imágenes para meter otras nuevas, ya que el script se encarga de no volver a trabajar de nuevo (digamos que este sería un script vago, jeje).
Sin más dilación, ahí va el script (la mitad del script no es mía, está aquí):
<?php
/**
* codigo de blog.juegosocio.com
* no dudes en avisarme de los fallos
* autor mamel
**/
ini_set("max_execution_time","600");
ini_set("memory_limit","48M");
//indicamos el directorio inicial
$directorio='./';
//indicamos la carpeta de destino de las fotos con la marca de agua
$directorio_destino=$directorio.'conmarca/';
//metemos en un array los archivos que hay en cada una de las carpetas
$archivos_destino_dir=scandir($directorio_destino);
$archivos_dir=scandir($directorio);
//recorremos el array que contiene los archivos del directorio inicial
foreach($archivos_dir as $archivo){
/*escojemos entre los archivos solo aquellos que sean .jpg
( ojo las .JPG no valdrian ya que al escribir la nueva
foto el nombre de archivo iria en minusculas), y no se
procesaran anteriormente*/
if(ereg('.jpg',$archivo) and !in_array($archivo,$archivos_destino_dir)){
//indicamos donde se encuentra la marca de agua
$marcadeagua="marca_agua.png";
$origen=$archivo;
/*escojemos el mismo nombre de archivo para el jpg
generado con marca de agua*/
$destino=$directorio_destino.$archivo;
$destino_temporal=tempnam("tmp/","tmp");
//llamamos a la funcion
marcadeagua($origen, $marcadeagua, $destino_temporal, 100);
// guardamos la imagen
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),
filesize($destino_temporal)));
fclose($fp);
//escribimos en pantalla los archivos que se han analizado
echo $archivo."<br>";
}
}
function marcadeagua($img_original, $img_marcadeagua,
$img_nueva, $calidad){
// obtener datos de la fotografia
$info_original = getimagesize($img_original);
$anchura_original = $info_original[0];
$altura_original = $info_original[1];
// obtener datos de la "marca de agua"
$info_marcadeagua = getimagesize($img_marcadeagua);
$anchura_marcadeagua = $info_marcadeagua[0];
$altura_marcadeagua = $info_marcadeagua[1];
/* calcular la posición donde debe copiarse la
"marca de agua" en la fotografia*/
$horizmargen = ($anchura_original - $anchura_marcadeagua)/2;
$vertmargen = ($altura_original - $altura_marcadeagua)/2;
// crear imagen desde el original
$original = ImageCreateFromJPEG($img_original);
ImageAlphaBlending($original, true);
// crear nueva imagen desde la marca de agua
$marcadeagua = ImageCreateFromPNG($img_marcadeagua);
// copiar la "marca de agua" en la fotografia
ImageCopy($original, $marcadeagua, $horizmargen, $vertmargen,
0, 0, $anchura_marcadeagua, $altura_marcadeagua);
// guardar la nueva imagen
ImageJPEG($original, $img_nueva, $calidad);
// cerrar las imágenes
ImageDestroy($original);
ImageDestroy($marcadeagua);
}
?>