Foros del Web » Programando para Internet » PHP »

Ancho y alto fijo en imagen sin distorsionarla

Estas en el tema de Ancho y alto fijo en imagen sin distorsionarla en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/08/2015, 14:24
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Ancho y alto fijo en imagen sin distorsionarla

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
  #2 (permalink)  
Antiguo 31/08/2015, 19:18
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Ancho y alto fijo en imagen sin distorcionarla

No se si entendí bien, por lo que veo queres agrandar una imagen y que no se distorsione ?
__________________
la la la
  #3 (permalink)  
Antiguo 01/09/2015, 00:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ancho y alto fijo en imagen sin distorcionarla

Pues habiendo muchas librerías para manipulación de imágenes en Internet no entiendo para qué abrir un tema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 01/09/2015, 10:43
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Ancho y alto fijo en imagen sin distorcionarla

Para eso están las librerías GD que trae PHP
  #5 (permalink)  
Antiguo 01/09/2015, 17:29
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 meses
Puntos: 72
Respuesta: Ancho y alto fijo en imagen sin distorcionarla

Cita:
Iniciado por andoencombi Ver Mensaje
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
  1.  
  2.     <title>subir imagen</title>
  3.     <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  4. </head>
  5.  
  6.     <form method="post" action="subirImagen.php" enctype="multipart/form-data">
  7.         Elige la imagen: <input type="file" name="imagen" />
  8.         <br/>
  9.         <input type="submit" value="enviar" name="enviar" />
  10.     </form>
  11. </body>
  12.  
  13. </html>
Código PHP:
Ver original
  1. <?php
  2.     $imagenEnviada= $_FILES["imagen"]["tmp_name"];
  3.     $tipo= explode("/", $_FILES["imagen"]["type"]);
  4.     $tipoImagen= $tipo[1];
  5.     $anchoDeseado= 1050;
  6.     $altoDeseado= 950;
  7.     list($anchoOriginal, $altoOriginal)= getimagesize($imagenEnviada);
  8.     $nuevoAncho; $nuevoAlto; $original;
  9.    
  10.     $relacionAncho= $anchoDeseado / $anchoOriginal;
  11.     $relacionAlto= $altoDeseado / $altoOriginal;
  12.    
  13.     if($relacionAncho < $relacionAlto) {
  14.         $nuevoAncho= floor($anchoOriginal * $relacionAncho);
  15.         $nuevoAlto= floor($altoOriginal * $relacionAncho);
  16.     } else {
  17.         $nuevoAncho= floor($anchoOriginal * $relacionAlto);
  18.         $nuevoAlto= floor($altoOriginal * $relacionAlto);
  19.     }
  20.    
  21.     $destinoX= ($anchoDeseado - $nuevoAncho) / 2;
  22.     $destinoY= ($altoDeseado - $nuevoAlto) / 2;
  23.    
  24.     switch($tipoImagen) {
  25.         case "jpeg":
  26.             $original= imagecreatefromjpeg($imagenEnviada);
  27.             break;
  28.         case "png":
  29.             $original= imagecreatefrompng($imagenEnviada);
  30.             break;
  31.         case "gif":
  32.             $original= imagecreatefromgif($imagenEnviada);
  33.             break;
  34.     }
  35.    
  36.     $imagen= imagecreatetruecolor($anchoDeseado, $altoDeseado);
  37.     $fondo= imagecolorallocate($imagen, 150, 150, 150);
  38.     imagefill($imagen, 0, 0, $fondo);
  39.     imagecopyresized($imagen, $original, $destinoX, $destinoY, 0, 0, $nuevoAncho, $nuevoAlto, $anchoOriginal, $altoOriginal);
  40.    
  41.     //header("Content-Type: image/png");
  42.     imagepng($imagen, "imagenGenerada.png");
  43.     imagedestroy($imagen);
  44. ?>
  #6 (permalink)  
Antiguo 08/09/2015, 07:52
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Ancho y alto fijo en imagen sin distorsionarla

Bien esto es lo que necesitaba, gracias!!

una cosa mas, podria ser que se le agregara una marca de agua a la imagen creada??

Última edición por andoencombi; 08/09/2015 a las 08:02

Etiquetas: alto, ancho, fijo, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:59.