Nueva pregunta

Pregunta:

Fecha: 13-09-2016 12:05:56 (En Español)

Tratamiento de imágenes web - redimensión de imágenes[Resuelta]

Hola que tal comunidad !!

Mi duda es la siguiente.

Tengo un sistema en el cual los usuarios se registran, asi mismo ellos tienen la oportunidad de subir una imagen de perfil, dicha imagen se muestra dentro de la seccion principal de la página, el problema es que los usuarios suben imagenes de distintas dimensiones y estas afectan el diseño en mi maquetación, me he dado cuenta que en otras páginas las imagenes las redimensionan o las acomoda de tal forma que no afecte el ancho y el alto.

¿Cual seria una buena practica para resolver esto?
¿Es mejor resolverlo desde CSS o recortar la imagen en php para que quede totalmente cuadrada y no afecte al diseño?
¿Al momento de guardar la imagen se renombra para que no exista duplicidad con los archivos de otros usuarios?

Etiquetas: CSS - HTML - PHP - PHP Avanzado - Pregunta Votos: 3 - Respuestas: 6 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 13-09-2016 14:15:27 Hola Luis!

    Yo recortaría las imágenes desde PHP.
    Acá te dejo algunas funciones para que puedas manipular las imágenes, si aún no las conoces te las recomiendo. Te permitiran recortarla o redimensionarla utilizando las dimensiones que vos le pases.

    imagescale()
    imagecrop()
    imagecropauto


    Saludos y éxitos.
    Diego.
      Votos: 3 - Link respuesta
     
  • Fecha: 14-09-2016 04:35:09 Hola Luis

    Algunas observaciones

    Dado que el usuario sube la imagen, como te dice Diego, el tratamiento ha de ser mediante PHP.

    Yo me permitiría indicar/limitar al usuario un peso máximo determinado de imagen. Ejemplo:
    $max  = 8388608; // (8 MB - 8192 KB );
    if ($filesize > $max) {
        echo "La imagen que ha intentado adjuntar es mayor de 8 MB, si desea cambie el tamaño del archivo y vuelva a intentarlo.";
    }
    


    Una segunda parte es saber el tipo de extensión de imagen a permitir:
    if ((preg_match("/.jpg/", $filename)) || (preg_match("/.jpeg/", $filename)) || (preg_match("/.gif/", $filename)) || (preg_match("/.GIF/", $filename)) || (preg_match("/.png/", $filename)) || (preg_match("/.PNG/", $filename))) {
        // Código aceptando la imagen
    } else {
        echo "Sólo se permiten imágenes en formato .jpg, .png o .gif.";
    }


    Y la tercera parte, la más compleja y en la que tienes que decidir la redimensión final de la imagen para tu programación, es:

    - ¿Qué alto y ancho máximo quiero que tenga la imagen final?
    - ¿Incluyo toda la imagen dejando espacios vacíos a lo alto o ancho según la proporción original?
    - ¿Recorto la imagen en el ancho o alto que exceden al tamaño final?

    Programado este código según nuestra elección será fácil maquetarla ya que sabremos el tamaño final de la imagen.

    Como observación final, tengamos en cuenta que las imágenes afectan mucho en el peso de la página sobre el texto de la programación.
      Votos: 3 - Link respuesta
     
  • Fecha: 14-09-2016 07:57:40 La verdad es que el CSS tambien va muy bien:

    Además que dejas el trabajo al frontend en algo simple y para lo que esta diseñado.

    Solo bastaría definir las dimensiones de la imagen en % o px .

    <style>
    .img{
        width:30px;
        height:20px;
    }
    </style>
    


    tu imagen

    <img src="../xxx.jpg" class="img" />
    


    También puedes ver el uso de selectores en este link CSS selectores
      Votos: 1 - Link respuesta
     
  • Fecha: 14-09-2016 08:51:19 Hola Dian:

    No te falta razón. PERO el peso de imagen te lo asumes (hosting, tráfico) y lo optimizas o no.
    El peso (servidor, carga de imagen vs. página, etc.) no compensa.

    Evidentemente, cada problema tiene diversas soluciones.

    Personalmente me lo pienso si un complejo de páginas web pueden ser más ágiles que el levantar una sola imagen.

    Con 8 MB podría montar 10 páginas web. Es por ello que los iconos de usuario se reducen treméndamente de tamaño. Y nos olvidamos de extensiones de imagen BMP o TIFF, que podrían ser perfectamente válidas
      Votos: 2 - Link respuesta
     
  • Fecha: 14-09-2016 14:21:21 Hola Luis, como te han recomendado aquí, yo también te recomiendo trabajar la imagen desde PHP y si luego también ajustarla con CSS (no es una u otra, se deben aplicar ambas estrategias). Tipicamente lo que se suele hacer con las imagenes subidas es guardarlas en formato original (si dispones de espacio en el servidor, a modo de backup), adaptarlas a un formato web en dos o tres tamaños, big, medium, thumb, y finalmente ajustarlas en la maqueta con CSS.

    Ahora bien, para trabajar la imagen del lado del servidor (con PHP) te recomiendo el uso de la librería/clase de Verot "class.upload.php", aquí tienes la web oficial https://www.verot.net/

    Con respecto al uso de esta librería, es libre siempre y cuando la utilices en un proyecto compatible con la licencia GPL, sino tendrás que adquirir la licencia comercial (mejor imposible, no te limita por ningun lado).

    Aquí la descarga: https://www.verot.net/php_class_upload_download.htm

    Aquí los ejemplos de uso: https://www.verot.net/php_class_upload_samples.htm

    Saludos y buen código!
      Votos: 1 - Link respuesta
     
  • Fecha: 18-09-2016 04:25:26 Buenos días, hay una función en php que es finfo_file (en http://php.net/manual/es/book.fileinfo.php) están todas las funciones que se utilizan para el tratamiento de ficheros.
    Por recomendación de seguridad, no se recomienda solo saber que extensión es si el archivo no es realmente la extensión que están subiendo.
    Esto recién lo estoy queriendo implementar porque las funciones de finfo_file no vienen instaladas por defecto (o por lo menos yo no las tengo instaladas por defecto) y tengo que hacerlo y, aunque no le puse mucha dedicación, lo voy a tener que hacer
    Si alguien sabe como hacerlo, estaría bueno que lo exponga por aquí.
    En conclusión, estas funciones se "meten" dentro del archivo y puede saber con exactitud que tipo de archivo es, independientemente de la extensión que contenga el nombre del fichero que quieran subir

    Saludos

    DIEGO
      Votos: 2 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com