![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
13/09/2003, 13:41
|
![Avatar de sakul](http://static.forosdelweb.com/customavatars/avatar23320_1.gif) | | | Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 22 años, 6 meses Puntos: 0 | |
Problema con WATERMARK dinámico Hola amigos, tengo un problema con el script para sellar imagenes dinámicamente.
Lo que sucede es que la imagen "sello" que es la direccion de mi web, cambia dependiendo del tamaño original de la foto, a pesar de que en la web la foto se dimenciona siempre en 640x480. Entonces el sello aparece a veces bien, y otras demaciado chico.
El script es el siguiente: Código PHP: <?
ob_start();
/* PARCHEADOR POR ELITE [email][email protected][/email]
int imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)
*/
if(!empty($_GET['imagen']))
{
$imagen = $_GET['imagen'];
$promo = "publicidad.gif"; //la imagen que sellara
$dir = "imagenes/"; //donde se guardaran las imagenes que no son al vuelo permisos CHMOD 0777
$explode = explode(".",$imagen);
$final = end($explode);
$final = strtolower($final);
switch($final)
{
case "jpg":
$im = imagecreatefromjpeg($imagen);
$type = "image/jpeg";
break;
case "png":
$im = imagecreatefrompng($imagen);
$type = "image/png";
break;
case "gif":
$type = "image/gif";
$im = imagecreatefromgif($imagen);
break;
}
$promoEXT = explode(".",$promo);
$promoFINAL = end($promoEXT);
$promoFINAL = strtolower($promoFINAL);
switch($promoFINAL)
{
case "jpg":
$promo_ = imagecreatefromjpeg($promo);
break;
case "png":
$promo_ = imagecreatefrompng($promo);
case "gif":
$promo_ = imagecreatefromgif($promo);
}
$imX = imagesx($im);
$imY = imagesy($im);
$tam = getimagesize($promo); //imagesx e imagesy me daban problemas asi que use este
$promoX = $tam[0];
$promoY = $tam[1];
$posX = $imX - $promoX;
$posY = 0;
imagecopy($im,$promo_,$posX,$posY,0,0,$promoX,$promoY);
// imagecopymerge($im,$promo_,$posX,$posY,0,0,$promoX,$promoY,100);
if((!empty($_GET['ancho'])) || (!empty($_GET['alto'])))
{
if(!isset($_GET['ancho']))
{
$tamanio = getimagesize($imagen);
$asp = ($tamanio[1] / $_GET['alto']);
$ancho = round($tamanio[0] / $asp);
}
else
{
$ancho = $_GET['ancho'];
}
/*
imagecopyresized ( int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
*/
$thumb = imagecreatetruecolor($ancho,$_GET['alto']);
imagecopyresampled ($thumb,$im, 0, 0, 0, 0,$ancho,$_GET['alto'],$imX,$imY);
if(empty($_GET['name']))
{
imagejpeg($thumb);
imagedestroy($thumb);
header("Content-Type: ".$type);
header("Content-Disposition: inline; filename=elite.jpg");
}
else
{
$explode = explode(".",$_GET['name']);
$end = end($explode);
$end = strtolower($end);
switch($end)
{
case "jpg":
imagejpeg($thumb,$dir.$_GET['name']);
break;
case "png":
imagepng($thumb,$dir.$_GET['name']);
break;
}
}
}
else
{
//
if(empty($_GET['name']))
{
imagejpeg($im);
imagedestroy($im);
header("Content-Type: ".$type);
header("Content-Disposition: inline; filename=elite.jpg");
}
else
{
$explode = explode(".",$_GET['name']);
$end = end($explode);
$end = strtolower($end);
switch($end)
{
case "jpg":
imagejpeg($im,$dir.$_GET['name']);
break;
case "png":
imagepng($im,$dir.$_GET['name']);
break;
}
//
}
}
}
else
{
// si accesesan directo muestras error o no se
}
ob_end_flush();
?> |