Combinar imágenes dinámicas (GD) Hola:
Tengo un script que genera una foto rotada 90 grados:
Código:
<?php
header("Content-Type: image/jpeg");
if (isset($_GET["rotar"])) $rotar = imagecreatefromjpeg($_GET["rotar"]);
else exit(0);
$destino = ImageRotate($rotar, 90, 0);
@imagejpeg($destino);
imagedestroy($destino);
?>
Ej:
Y otra script que genera la imagen con otras características (márgenes dimeniones, etc.)
Código:
<?php
header("Content-Type: image/jpeg");
if (isset($_GET["imagen"])) $imagen = imagecreatefromjpeg(urldecode($_GET["imagen"]));
else exit(0);
if (isset($_GET["tam"])) $tam = explode("x", $_GET["tam"]);
else $tam = explode("x", "1x1");
if (isset($_GET["simular"])) $simular = $_GET["simular"];
else $simular = "A6";
if (isset($_GET["margen"])) $margen = $_GET["margen"];
else $margen = "0";
$Ancho =imagesx($imagen);
$Alto =imagesy($imagen);
$destino = ImageCreateTrueColor($tam[0],$tam[1]);
//$destino = ImageCreate($tam[0],$tam[1]);
$blanco = ImageColorAllocate( $destino, 255, 255, 255);
imageFill($destino, 1, 1, $blanco);
switch ($simular) {
case "A5":
if ((int) $tam[0] > (int) $tam[1]) {
$ancho = ($tam[0] / 2) - ($margen * 2);
$alto = $tam[1] - ($margen * 2);
ImageCopyResized($destino, $imagen, $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
}
else {
$ancho = $tam[0] - ($margen * 2);
$alto = ($tam[1] / 2) - ($margen * 2);
ImageCopyResized($destino, $imagen, $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
}
break;
case "A4":
$ancho = ($tam[0] / 2) - ($margen * 2);
$alto = $tam[1] / 2 - ($margen * 2);
ImageCopyResized($destino, $imagen, $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
break;
case "A3":
if ((int) $tam[0] > (int) $tam[1]) {
$ancho = ($tam[0] / 4) - ($margen * 2);
$alto = $tam[1] / 2 - ($margen * 2);
ImageCopyResized($destino, $imagen, $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 4 + $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 4 + $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $tam[0] / 4 + $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $tam[0] / 4 + $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
}
else {
$ancho = ($tam[0] / 2) - ($margen * 2);
$alto = $tam[1] / 4 - ($margen * 2);
ImageCopyResized($destino, $imagen, $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $margen, $tam[1] / 4 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $tam[1] / 4 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $margen, $tam[1] / 4 + $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
ImageCopyResized($destino, $imagen, $tam[0] / 2 + $margen, $tam[1] / 4 + $tam[1] / 2 + $margen, 0, 0, $ancho, $alto, $Ancho, $Alto);
}
break;
default:
$ancho = $tam[0] - ($margen * 2);
$alto = $tam[1] - ($margen * 2);
ImageCopyResized($destino, $imagen, $margen, $margen, 0, 0, $ancho, $alto, $Ancho,$Alto);
break;
}
@imagejpeg($destino);
imagedestroy($destino);
imagedestroy($imagen);
?>
Ej:
(Simula una vista previa de impresión...)
Lo que no he conseguido es que la misma URL contenga los 2 script...
rotar90.php?rotar=miniPostal.php?margen=8&simular= A5&...
Lo que si pude hacer poner los 2 scripts en uno, pero me gustaría saber si de la manera que no pude conseguir es posible...
Ej:
Saludos
__________________ Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo |