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();
?>