Hola buenas, a ver si me podéis echar una mano. Estoy haciendo un sistema de subida de imágenes, 5 para ser exactos, pero al subir imágenes "grandes" (he probado con unas de 2,5MB) sale el error de "Allowed memory size of 134217728 bytes exhausted".
El método es:
Código PHP:
function redimensionarImagen($img_original, $directorio_img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad) {
// crear imagen desde original
$img = imagecreatefromjpeg($img_original);
// crear imagen nueva
$thumb = ImageCreateTrueColor($img_nueva_anchura,$img_nueva_altura);
// redimensionar imagen original copiandola en la imagen
imagecopyresampled($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la imagen redimensionada donde indica $directorio_img_nueva con el nombre y directorio (Ej. C:\Pagina wel\imagen.jpeg
imagejpeg($thumb,$directorio_img_nueva,$img_nueva_calidad);
// Libera memoria
imagedestroy($thumb);
imagedestroy($img);
}
Y como ejemplo del tratamiento que le hago a la imagen:
Código PHP:
$imagen1=imagecreatefromjpeg($_FILES['foto1']['tmp_name']);
$anchuraimagen1=imagesx($imagen1);
$alturaimagen1=imagesy($imagen1);
if ($anchuraimagen1>=$alturaimagen1){
redimensionarImagen($_FILES['foto1']['tmp_name'], '../'.$directorioimagenes.'piso'.$idpiso.'_1micro.jpg', $anchuramicro, $alturamicro, $calidadminimicro);
redimensionarImagen($_FILES['foto1']['tmp_name'], '../'.$directorioimagenes.'piso'.$idpiso.'_mini.jpg', $anchuramini, $alturamini, $calidadminimicro);
redimensionarImagen($_FILES['foto1']['tmp_name'], '../'.$directorioimagenes.'piso'.$idpiso.'_1.jpg', $anchuragrande, $alturagrande, $calidadgrande);
}
else{
redimensionarImagen($_FILES['foto1']['tmp_name'], '../'.$directorioimagenes.'piso'.$idpiso.'_1micro.jpg', $anchuramicro, $alturamicro, $calidadminimicro);
redimensionarImagen($_FILES['foto1']['tmp_name'], '../'.$directorioimagenes.'piso'.$idpiso.'_mini.jpg', $anchuramini, $alturamini, $calidadminimicro);
redimensionarImagen($_FILES['foto1']['tmp_name'], '../'.$directorioimagenes.'piso'.$idpiso.'_1.jpg', 360,480 , $calidadgrande);
}
¿Qué forma habría de optimizar el funcionamiento para que no diese error?
Gracias de antemano, un saludo