Foros del Web » Programando para Internet » PHP »

Imagemagick - Problema con marca de agua

Estas en el tema de Imagemagick - Problema con marca de agua en el foro de PHP en Foros del Web. Hola a todos! Espero puedan ayudarme. Estoy utilizando imagemagick para generar pdf a través de varias imágenes tif. El problema lo tengo cuando a la ...
  #1 (permalink)  
Antiguo 13/04/2012, 06:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Imagemagick - Problema con marca de agua

Hola a todos!
Espero puedan ayudarme.
Estoy utilizando imagemagick para generar pdf a través de varias imágenes tif. El problema lo tengo cuando a la imagen le quiero agregar una marca de agua, el peso del pdf generado crece excesivamente y no entiendo porque, si yo no le coloco la marca de agua el pdf tiene un peso normal.
Acá les pongo el código que estoy utilizando y desde ya muchas gracias!!!

<?php

include('includes/config.php');
include('includes/conn.php');
include('includes/myfunc.php');

error_reporting(E_ALL); // Muestra los errores
ini_set("display_errors", 1); // Coloca en ON display_errors
ini_set("max_execution_time", 480); //seteo el tiempo de ejecucion solo para este proceso en 480 segundos
session_start();

$path = addslashes( $_REQUEST['p'] );
$w = intval( $_REQUEST['w'] );
$h = intval( $_REQUEST['h'] );
$marca = addslashes( $_REQUEST['m'] );
$tabla = addslashes( $_REQUEST['t'] );

$sql = "select * from $tabla where path ='$path'";

$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$row['IDlote'];
$idlote = $row['IDlote'];

$consulta = "select archivo from tb_archivos where IDlote ='$idlote' order by orden";
$resultado = mysql_query($consulta);

$im = new Imagick();
$im->setResourceLimit( Imagick::RESOURCETYPE_MEMORY, 500 );

while($arr = mysql_fetch_array($resultado, MYSQL_ASSOC)){
foreach( $arr as $f ) //para cada archivo del directorio f va tomando el valor en cada pasada
{

$auxIMG = new Imagick();
$auxIMG->readImage($path.'/'.$f);



// marca de agua
if($marca != ''){
$draw = new ImagickDraw(); // caja de texto
$draw->setFont('fonts/arial.ttf'); // fuente (tiene q estar fisicamente en el ftp
$draw->setFontSize( 100 ); // pixels
$draw->setFontWeight( 700 ); //100-900 (mas de 500 es bold)
$draw->setFillAlpha( 0.5 ); // transparencia 50%
$draw->setGravity( Imagick::GRAVITY_CENTER ); // centrar en canvas
$auxIMG->annotateImage( $draw, 0, 0, -45, $marca ); // escribir el contenido de $marca en -45ş
}

// agregar la imagen al pdf
$im->addImage($auxIMG);




}
}

// guarda el pdf con una imagen por pagina
$docname = substr( strrchr($path, '/'), 1);

$pdf = 'temp/'.$docname.'.pdf';


$im->writeImages($pdf, true);


// la envia al navegador como descarga
header( "Content-Type: application/pdf" );
header('Content-Disposition: attachment; filename='.$pdf);
header('Content-Length: '.filesize($pdf));
readfile($pdf);

// la elimina

unlink($pdf);



session_commit();
?>

Etiquetas: imagemagick
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 16:50.