Intento hacer un script que al enviarle una imagen me devuelva otra de 400x300 px. Este es el código que se encarga de cortarla
Código PHP :
list($ancho_orig, $alto_orig) = getimagesize($nombre_archivo); $ratio_orig = $ancho_orig/$alto_orig; $ratio = $ancho/$alto; if ($ratio_orig>$ratio) { //Mes ampla que alta $y = 0; $x = ($ancho_orig-$alto_orig*$ratio)/2; $ancho_orig = $alto_orig*$ratio; }else { //Mes llarga que ampla $x = 0; $y = 0;/*($alto_orig-$ancho_orig*$ratio)/2; $alto_orig = $ancho_orig/$ratio;*/ } // Redimensionar $image_p = imagecreatetruecolor($ancho, $alto); $image = imagecreatefromjpeg($nombre_archivo); imagecopyresampled($image_p, $image, 0, 0, $x, $y, $ancho, $alto, $ancho_orig, $alto_orig);
Luego ya la convierto a png y la muestro por el navegador. Cuando la imagen es más hancha que larga todo funciona Ok. Pero cuando es más larga (height mayor) El navegador me devuelve que no se puede mostrar la imagen porque contiene errores.
Llevo ya un buen rato dándole vueltas y seguro que es una chorrada de error, pero mira, no lo encuentro. A ver si le hechaís un ojo al código y me decís que es lo que está cascando