Uso de recortes de imágenes en Drupal ocho de forma óptima

Uso de recortes de imágenes en Drupal ocho de forma óptima

15 Jul 2020 in

El empleo de recortes de imagen ( cropsen inglés) es unaen Drupal Trademark. Deja emplear un recorte de una imagen, esto es, una selecciónde una área con forma rectangulardentro de la imagen. Generalmente son los propios editores quienes pueden seleccionar la parte de la imagen original a emplear, de forma que sea un humano, y no una máquina, quien decida cuál es la parte interesante de la imagen. Así, es posible subir una imagen una sola vez y usar derivados de ella de forma automática (o bien semi-automática, en tanto que solo se tiene que seleccionar la parte a emplear de la imagen) sosteniendo la parte interesante de la imagen siempre y en toda circunstancia perceptible.

Seleccionado parte de la imagen, es decir, haciendo un cropmanual.

Los cropso recortes no producen una nueva imagen por sí mismos y ni alteran en modo alguno la imagen original. Drupal los acostumbra a llamar manual crops, por ser recortes realizados manualmente por un usuario.

Por otro lado, Drupal permite definir estilos de imagen, que se pueden aplicar a las imágenes mostradas en el sitio web. Los estilos de imagen comúnmente proporcionan miniaturasy recortesde imágenes, pero también se pueden añadir otros efectoscomo pasar a blanco y negro, viñetear o virar cara un color. Para ello, se crea un estilo de imagen con los efectos deseados, y después se aplica dicho estilo a las imágenes que se quiera. Por ejemplo, se puede configurar Drupal Trademark para que use un estilo de imagen para las imágenes de un campo determinado de un nodo. Así, subamos como subamos la imagen, Drupal se encarga de formatearla según se haya configurado. Es esencial tener en consideración que Drupal genera un nuevo fichero a partir de la imagen original, dejando la original sin alterar. Esta nueva imagen se considera regenerable, esto es, puede ser borrada y Drupal automáticamente la volverá a crear si la precisa.


Ejemplo de un estilo de imagen que redimensiona a 50x50.

Ambas funcionalidades se combinan, de manera que se pueden definir estilos de imágenes que usen los recortes del usuario como una parte de la transformación de la imagen. Por ejemplo, si tenemos un tipo de contenido con una imagen, y sabemos que la fotografía siempre y en toda circunstancia se mostrará cuadrada, lo normal es utilizar un estilo de imagen que use un recorte de imagen cuadrado para cuando se muestre la imagen.

Cómo es frecuente en Drupal Trademark, esta funcionalidad es muy flexible, mas una gran flexibilidad también acarrea una enorme posibilidad de usarla de forma poco eficiente o difícil de sostener. Si nos desatendemos, podemos acabar teniendo que sostener una lista larguísima de recortes ( crops) y estilos de imagen, lo que hará más dura la labor de edición.

Back to top

1) Crops basados en la visualización, una mala idea

Una de las prácticas típicas consiste en crear recortes recortes directamente basadosen la visualización. Es decir, crear un croppor cada estilo de imagen para asegurar que la imagen no se deforma o bien se recorta de forma automática mostrando una parte poco interesante de la imagen original.

Por ejemplo, supongamos que tenemos una web de una tienda. Podríamos definir los siguientes estilos de imagen:

  • product_full: para la paǵina de visualización de un producto, se usará para las imágenes del producto mostradas en carrusel, 800x600 píxeles.
  • product_thumbnail: también en la paǵina de visualización de un producto, para las miniaturas de las imágenes del producto en el carrusel, 200x180 píxeles.
  • product_teaser: para las páginas de listados de productos, búsquedas, etcétera 400x400 píxeles.
  • product_cart: para enseñar el producto en el carrito. 180x180 píxeles.

Si seguimos esta estrategia, se crearían cropspor cada estilo de imagen con el tamaño de cada estilo. Esto nos llevaría a los próximos problemas:

  • El número de cropscrece a medida que aparecen nuevos estilos de imagen. Si queremos un nuevo estilo necesitamos un nuevo estilo y un nuevo crop.
  • El editor puede verse obligado a realizar recortes prácticamente iguales (por ejemplo, product_thumbnaily product_cart, de 200x180 y 180x180). Esto resulta aburrido y reduce la productividad del editor.
  • Complica la aplicación en el backendya que para atenuar los problemas que pueden surgir se debe prever en qué estilos de imagen se marcha a emplear cada imagen y configurarlo a nivel de campo basado en el contenido. ¿Qué pasa cuando a mitad de proyecto queremos añadir un nuevo estilo de imagen? ¡Tenemos que recortar todo el contenido existente para este nuevo crop!
  • La simplificación anterior no es posible cuando no empleamos las imágenes de manera directa asociadas a un campo si no que queremos emplear una librería tipo Media, ya que entonces los recortes pertenecen a la imagen que está absolutamente disociada del contenido donde se utiliza (como debería de ser).

Un caso práctico con este ejemplo: imaginemos que se quiere añadir una funcionalidad de producto señalado, mostrando su imagen a digamos 600x600 píxeles. Ante este escenario precisamos un estilo de imagen nuevo, product_featured. Este estilo tendría las mismas proporcionesque el producto en listados, pero con unas dimensiones superiores(600x600 en vez de 400x400), con lo que sería preciso registrar un nuevo recorte(y recortar los contenidos de nuevo).

Back to top

2) Separar el recorte de los estilos dónde se emplea, una buena idea

El problema esencial de la aproximación anterior es que se asocia cada cropcon el estilo de imagen donde se utiliza dicho recorte. De esa relación directa es de donde surgen todos los inconvenientes. La solución es separarlos. ¿Cómo? Muy fácil, usando cropsgenéricos basados en el ratio y no en las dimensiones. Una imagen original puede tener cualquier ratio (puede ser más bien cuadrada, o bien apaisada, vertical, etcétera, pero cuando deseamos mostrarla en un hueco con un ratio determinado empleamos un recorte para apuntar qué parte de la imagen es la interesante para ese ratio específico. Pero esto no guarda relación con su tamaño, solo con el ratio (la relación entre alto y ancho).

Es decir, por una parte tenemos los recortesde imágenes basados en ratios de alto por ancho (cuanto más estándares mejor, 16:9, 1:1, 2:1, etc.. Para producir hay que obviar las dimensiones finales de donde desee que se pretenda emplear, solo hay que tomar en consideración el ratio. De este modo si sostenemos el número de ratios posibles al mínimo, el número de recortes que tendrá que seleccionar un editor será menor y más fácilmente reutilizable en otras áreas de la página web. ¿Por qué no emplear exactamente el mismo recorte para el producto en el carrito y para las miniaturas si ambas se acercan a 1:1? Aquí es esencial cuestionar los diseños que recibamosy no complicar el backendcon infinitos presetscon alteraciones leves de pocos píxeles. ¡Utilicemos ratios de imagen!

Por otro están los estilosde imágenes que sí se producen pensando de manera directa y completa en la visualización. Su objetivo no es la selección del área sino más bien optimar la imagen al formato que se va a visualizar, ahorrando ancho de banda y mejorando por tanto la sensación del usuario (debido a una mejor velocidad de descarga y menor consumo de datos), así como su adaptación a dispositivos con doble densidad de pantalla. Estos estilos tendrán en cuenta el ratiode visualización (16:9, 3:2, 1:1)y las dimensiones finales. Para esto, al configurar el estilo de imagen, se incluye por un lado el cropo recorte utilizado, que marcará el ratio de visualización, y por otro unas dimensiones finales (así sea indicando ambas, que deberán ser congruentes con el ratio, o marcando solo una de las dimensiones y dejando que la otra se calcule automáticamente en función del ratio).

¿Por qué es una estrategia flexible y escalable?

  1. Permite el empleo de un mismo recorte en distintos estilosde imagen ( teaser, contenido completo, miniatura, etcétera.
  2. No condiciona el recorte según dónde se usa.
  3. Permite el ajustede las dimensiones finalesdel estilo sin rehacer el recorte, lo que implica un reajuste manual (toda vez que mantengan exactamente el mismo ratio).
  4. Evita la pérdida de recortes en contenido existentetras el ajuste o bien refactorización del diseño (siempre que mantengan exactamente el mismo ratio).
  5. Fuerzael uso de imágenes basadas en ratios reutilizables, algo que evita una dificultad muy frecuentemente superflua.
  6. Los recortesquedan asociadosa la entidad Media(no al contenido como versiones anteriores de Drupal) con lo que al reutilizarla, también se reutilizan los recortes ya efectuados, evitando tener que regresar a efectuar otro recorte para el nuevo uso.
  7. Se evitatener un listado infinito de recortes.
  8. Si en un evolutivo se decide que el listado de productos (estilo product_teaser) ya no utiliza el ratio 1:1 si no el 3:2, tan sólo necesitamos actualizar el preset ya que los recortes ya existirán y no implicará acción alguna por parte de los editores (toda vez que ese ratio estuviese dado de alta previamente).

Un sitio web adecuadamente estructurado normalmente no debería de utilizar más de 3-cinco ratios distintos. Ejemplos:

  • 1:1 ( cuadrado)
  • 3:2 ( foto)
  • 16:9 ( video)
  • Otros: Cabecera panorámica, verticales, etc.

Es importantereforzar que un recorte de una imagen es el mejor encuadrepara un ratio determinado ( cuadrado 1:1, vídeo 16:9, foto 3:2, etc). En caso de que se necesite para una misma fotografía utilizar un recorte diferente siempre y en todo momento es posible subir la fotografía nuevamente a la librería de imágenes con un nombre diferente que claramente indique que esa fotografía tiene otro encuadre.

Media Library está pensado para volver a utilizar, volvamos a utilizar los recursos: imagen, título, propiedades y recortes.

2.1) Tamaño de recorte mínimo

Podemos tener un inconveniente con esta estrategia. Al no fijar mínimo en el recorte, los editores pueden seleccionarun áreademasiado pequeñadentro de la imagen. Lo que provocaría que la imagen resultante en la visualizaciónaparezca aumentaday pixelada. Esto se puede solucionar fácilmente de las siguientes maneras:

  1. Fijando unas dimensiones mínimasen el recorte ( soft limiten la configuración del efecto del recorte para sencillamente dar un aviso si se escoge una área de menor tamaño, o hard limitsi deseamos impedir que se escoge un área demasiado pequeña).
  2. Estableciendo la resolución mínima de imagenen la configuración del campode la entidad media.
  3. Añadiendo una descripciónen los campos de tipo referencia a media o en el campo imagen en la entidad media con las resolucionesde los recortes recomendadas.

Al igual que otros campos de la página web, los editores tienen la capacidad de previsualizar el resultado de un nodo antes de publicarlo, de manera que en el caso de que empleen imágenes de baja resolución pueden percatarse y emplear un recurso de mejor resolución.

Back to top

3) ¿Cómo incorporamos la solución de recortes basados en ratio?

Lo primero es tener instalados los módulos que vamos a necesitar:

Usaremos el módulo Media para las imágenes, junto con Entity Browser, Media Entity Browser y Inline Entity Form. Esto nos permite tener una biblioteca de imágenes, pero sobre todo asociar los recortes a entidades de tipo Media (que serán en este caso imágenes), de forma que siempre que se use una imagen de la biblioteca tendrá exactamente los mismos recortes asociados: basta con seleccionar una sola vez el recorte por cada imagen.

Para que los editores puedan elegir áreas para los recortes usaremos Image Widget Crop (así como Crop API, claro). Por último, los módulos Breakpoint y Adaptable Image nos servirán para concretar diferentes estilos de imagen en función de la densidad de pantalla del usuario.

Siguiendo con el ejemplo precedente de la tienda, supongamos que queremos usar esta estrategia para imágenes con ratio 1:1. Hay dos imágenes que se visualizan con este ratio: el producto en el carrito, y el teaserdel producto.

Lo primero sería crear un recorte de ratio 1:1. Para esto vamos a /admin/config/media/cropy añadimos un nuevo cropcon el nombre «1:1» y el campo «Aspect Ratio» a 1:1.

A continuación, desde /admin/config/media/image-styles,crearíamos 2 estilos de imagen, uno para cada visualización. Primero el producto en el carro, con el estilo product_cart. Es suficiente con añadir como efectos el recorte manual que hemos creado anteriormente y un escalado para amoldarlo al tamaño preciso de visualización:

Y después añadimos el estilo de imagen para el producto en cuando se visualiza en teasers. El estilo de imagen es igual pero en un caso así se escala a otras dimensiones.

En caso de que se quieran optimizar los estilos para pantallas de doble densidad, se tendría que dar de alta otro estilo por cada visualización alterando el escalado al doble del anterior (mas lógicamente el recorte seguiría siendo el mismo). Por ejemplo, el producto en el carrito pasaría de un escalado a 180x180 a un escalado de 360x360. Además, en el formateador se deberá hacer empleo del proporcionado por el módulo Breakpoint «Imagen adaptable». El estilo de imagen amoldable se daría de alta desde /admin/config/media/responsive-image-style(esto lo provee el módulo Responsive Image).

Por último, apreciar que cuando se añade el efecto de escalado y recortado podemos señalar como es la zona por defecto a recortar. En el caso de que no se realice recorte manual, al aplicar el estilo de imagen Drupal Trademark emplea esta información para hacer el recorte automático.

Configuración del efecto de escalado y recorte de un estilo de imagen, escogiendo la parte superior como la parte a conservar durante el recorte automático.

Esto es singularmente útil para imágenes con personas en tanto que evitaremos cortar las cabezas si dejamos el recorte a Drupal de forma automática.

Back to top

4) Conclusión

Nuestra recomendación para los recortes manuales y los estilos de imagen se puede resumir en:

  • Trata de normalizar los tamaños de visualización de las imágenes a un conjunto reducido de ratios.
  • Configura recortes manuales para cada ratio utilizado sin asociar directamente los recortes con estilos de imagen. Esto es, separa los recortes que uses de las visualizaciones del sitio.
  • Configura los estilos de imagen para emplear los ratios que has creado, usando el efecto de manual cropy el escalado y recortado.
Back to top
Share icon

ESTOS EXCLUSIVOS INFORMES GRATUITO REVELAN

7 SECRETOS DE EXPERTOS SEO QUE TE LLEVÁN AL 1#
7 SECRETOS DE EXPERTOS SEO QUE TE LLEVÁN AL 1# EN GOOGLE PARA GANAR 10.000s DE TRÁFICO DE CALIDAD GRATUITO - EN SÓLO 2 MESES
 

Los 7 pasos más poderosos para disparar tu ranking orgánico para ALCANZAR Y MANTENER un impresionante tráfico orgánico es TUYO.

Consigue gratis lo que el 1% de los expertos en SEO venden por miles de euros... y el otro 99% ni siquiera sabe que existe.


OBTEN MI INFORME GRATUITO
5 errores que debes evitar en tu sitio web de Drupal
Ebook - 5 errores que debes evitar en tu sitio web de Drupal (¡podrían costarte miles de euros!)
 

Este Ebook cubre 5 terribles errores que probablemente estés cometiendo ahora mismo con tu sitio web de Drupal.

¡Nº3 TE SORPRENDERÁ! Esta lectura de 10 minutos te ahorrará miles de euros.



OBTEN MI INFORME GRATUITO