Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2005, 03:29
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
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