"para guardar la imagen se encuentra casi al final del codigo"
Código PHP:
<?
header("Content-type: image/jpeg");
if($_POST){
// Creamos la cadena aletoria
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cad = "";
for($i=0;$i<12;$i++) {
$cad .= substr($str,rand(0,62),1);
}
// Fin de la creacion de la cadena aletoria
$tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max="500000"; // Tamaño maximo permitido
if( $tamano < $tamaño_max){ // Comprovamos el tamaño
$destino = 'tmp' ; // Carpeta donde se guardata
$sep=explode('image/',$_FILES["file"]["type"]); // Separamos image/
$tipo=$sep[1]; // Optenemos el tipo de imagen que es
if($tipo == "gif" || $tipo == "pjpeg" || $tipo == "bmp"| $tipo == "jpeg" || $tipo == "png" || $tipo == "jpg" ){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$cad.'.'.$tipo); // Subimos el archivo
}
else echo "el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo desimos
}
else echo "El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo desimos
}
$imagen = $destino.'/'.$cad.'.'.$tipo;
function redimensionar_imagen($imagen, $nombre_imagen_asociada)
{
//indicamos el directorio donde se van a colgar las imágenes
$directorio = "tmp/" ;
//establecemos los límites de ancho y alto
$nuevo_ancho = 438;
$nuevo_alto = 328;
//Recojo información de la imágen
$info_imagen = getimagesize($imagen);
$alto = $info_imagen[1];
$ancho = $info_imagen[0];
$tipo_imagen = $info_imagen[2];
//Determino las nuevas medidas en función de los límites
/*if($ancho > $nuevo_ancho OR $alto > $nuevo_alto)
{
if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho))
{
$nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ;
}
else
{
$nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);
}
}
else //si la imagen es más pequeña que los límites la dejo igual.
{
$nuevo_alto = $alto;
$nuevo_ancho = $ancho;
} */
// dependiendo del tipo de imagen tengo que usar diferentes funciones
switch ($tipo_imagen) {
case 1: //si es gif …
$imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefromgif($imagen);
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
case 2: //si es jpeg …
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefromjpeg($imagen);
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
case 3: //si es png …
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefrompng($imagen);
//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
}
return true; //si todo ha ido bien devuelve true
}
$nombre_imagen_asociada = "".$cad.".".$tipo."";
redimensionar_imagen($imagen, $nombre_imagen_asociada);
$imgbase = "source/imgbase.jpg";
$imgup = $destino.'/'.$cad.'.'.$tipo;
$imagena = imagecreatefromjpeg(''.$imgbase .'');
$imagen1 = imagecreatefromjpeg(''.$imgup .'');
imagecopymerge($imagena, $imagen1, 31, 31, 0, 0, 438, 328, 75);
//Colores
$blanco = imagecolorallocate($imagena, 255, 255, 255);
$gris = imagecolorallocate($imagena, 128, 128, 128);
$negro = imagecolorallocate($imagena, 0, 0, 0);
//Fuente
$fuente = 'verdanab.ttf';
$textoo = $_POST['texto'];
$textoo1 = $_POST['texto1'];
$linea3 = $_POST['linea3'];
//Centrar
$dimensions = imagettfbbox(20, 0, $fuente, $textoo);
$textWidth = abs($dimensions[4] - $dimensions[0]);
$xx =(imagesx($imagena)-$textWidth)/2;
$dimensions1 = imagettfbbox(12, 0, $fuente, $textoo1);
$textWidth1 = abs($dimensions1[4] - $dimensions1[0]);
$xx1 =(imagesx($imagena)-$textWidth1)/2;
$dimensions11 = imagettfbbox(12, 0, $fuente, $linea3);
$textWidth11 = abs($dimensions11[4] - $dimensions11[0]);
$xx11 =(imagesx($imagena)-$textWidth11)/2;
imagettftext($imagena, 21, 0, $xx, 388, $blanco, $fuente, $textoo);
imagettftext($imagena, 12, 0, $xx1, 410, $blanco, $fuente, $textoo1);
imagettftext($imagena, 12, 0, $xx11, 425, $blanco, $fuente, $linea3);
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cadena = "";
for($i=0;$i<12;$i++) {
$cadena .= substr($str,rand(0,62),1);
}
$path ="tmp/".$cadena.".jpeg";
imagejpeg($imagena,$path);
imagedestroy($imagena);
?>