Cita:
Iniciado por andoencombi
Hola amigos.
Necesito de su ayuda, resulta que necesito subir imagenes a mi servidor con un formulario en php, pero necesito que al subirlas las imagenes tomen un tamaño nuevo pero que la imagen no se distorcione, ejemplo;
imagen original 400x200
imagen nueva 1050x950
Ahora la imagen nueva se escalara un poco pero tendra la medida nueva sin distorcionar la original, es decir la centrara en la nueva imagen.
Ya estuve revisando
esta liga de foros del web pero al parecer tiene errores
Hola, me gusta el tema. Prueba con esto, espero que te sirva.
Código HTML:
Ver original
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<form method="post" action="subirImagen.php" enctype="multipart/form-data"> Elige la imagen:
<input type="file" name="imagen" /> <input type="submit" value="enviar" name="enviar" />
Código PHP:
Ver original<?php
$imagenEnviada= $_FILES["imagen"]["tmp_name"];
$tipo= explode("/", $_FILES["imagen"]["type"]); $tipoImagen= $tipo[1];
$anchoDeseado= 1050;
$altoDeseado= 950;
$nuevoAncho; $nuevoAlto; $original;
$relacionAncho= $anchoDeseado / $anchoOriginal;
$relacionAlto= $altoDeseado / $altoOriginal;
if($relacionAncho < $relacionAlto) {
$nuevoAncho= floor($anchoOriginal * $relacionAncho); $nuevoAlto= floor($altoOriginal * $relacionAncho); } else {
$nuevoAncho= floor($anchoOriginal * $relacionAlto); $nuevoAlto= floor($altoOriginal * $relacionAlto); }
$destinoX= ($anchoDeseado - $nuevoAncho) / 2;
$destinoY= ($altoDeseado - $nuevoAlto) / 2;
switch($tipoImagen) {
case "jpeg":
break;
case "png":
break;
case "gif":
break;
}
imagecopyresized($imagen, $original, $destinoX, $destinoY, 0, 0, $nuevoAncho, $nuevoAlto, $anchoOriginal, $altoOriginal);
//header("Content-Type: image/png");
imagepng($imagen, "imagenGenerada.png"); ?>