Reply #6 October 13, 2010 - 02:33 14:33
echale un vistazo a este, que me da que algo le falta.
< ?php
// directorio donde se ubiquen nuestras imágenes
$DIR_ORIGINAL = "/home/httpd/vhosts/midominio.com/httpdocs/imagenes";
// directorio de destino
$DIR_NUEVA = "/home/httpd/vhosts/midominio.com/httpdocs/marcas";
// el siguiente valor es para limitar el tiempo de espera para la ejecución del script
// mejor dejémoslo ilimitado puesto que nos pueden resultar cortos los 30 segundos que tiene por defecto.
set_time_limit(0);
// funcion marcadeagua()
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 se debe incrustar la "marca de agua"
// en este caso la centramos tanto en altura como en anchura
$horizextra = $anchura_original - $anchura_marcadeagua;
$vertextra = $altura_original - $altura_marcadeagua;
$horizmargen = round($horizextra / 2);
$vertmargen = round($vertextra / 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);
}
$dir = opendir($DIR_ORIGINAL);
while(false !== ($file = readdir($dir))) {
if (!is_dir($file) && $file != "." && $file != ".." && exif_imagetype($file)==2) {
// aplicar función
marcadeagua($DIR_ORIGINAL."/".$file,"marcadeagua.png",$DIR_NUEVA."/".$file,100);
}
}
closedir($dir);
?>
Por supuesto hay que hacerle una transparencia png y alojar ambos, es decir el watermark.php y watermark.pnp en la raiz del foro, pero creo que algo se escapa del que te he puesto.
Ya diras.