Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Bug] Como redimensionar imagens melhorando performance, ux e não perdendo qualidade? E como não fazer

Estou considerando revisitar este exercício para saber as melhores formas de utilizar o gimp em conjunto com o tinydesk e especialmente, como redimensionar imagens de acordo com as suas proporções e melhor explorar a sua dpi para diferentes finalidades.

encontrei este artigo, mas acredito que precisamos de uma continuação para saber como reproduzir a imagem, de acordo com suas proporções originais, para diferentes devices. Não sei se posso dizer que essa é também uma questão de ux e acessibilidade quando fazemos o tratamento da imagem no gimp. Especialmente precisarei refinar o redimensionamento(scale) sob medida do original.

Eis abaixo o como não fazer

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Imagens</title>
</head>
<body>
    <h1>Imagens</h1>
    <hr>
    <a href="https://cursos.alura.com.br/classpage/html-css-ambiente-estrutura-estilo/task/210600">Revisar: Manipulando e usando imagens no HTML</a>
    <p>Caminho relativo: quando a imagem está na pasta.<br>
     Caminho absoluto: quando eu a extraio de uma url onde esta imagem está armazenada na internet</p>

    <h2>tipos de imagens</h2>
    <ul>
        <li>Jpeg</li>
            <p>São imagens geralmente com alta qualidade e por isso também mais pesadas, não possuem fundo vazio, então devem ser bem pensadas quando utilizadas no site principalmente junto ao css da página</p>
        <li>png</li>
            <p>São imagens sem fundo que trabalham muito bem com o css e arrisco dizer que com o javascript além de sobrecarregar o site menos do jpeg</p>
        <li>svg</li>
            <p>são imagens vetorizads e mais leves, muitas vezes utilizadas como logo e favicon dos sites</p>
        <li>webp</li>
            <p>São mais leves e pensadas para trazer maior Performance reduzindo a latência do site</p>
    </ul>
    
     <h2>Desafios</h2>
    <ul><li>Como explorar o melhor do backend e frontend para trazer a melhor experiência do usuário de acordo com o aparelho utilizado?</li>
            <ul>
                <li>Qualidade da imagem x Performance da página</li>
                <li>Otimizar para que mostre somente a imagem com qualidade correspondente ao device do usuário</li>
                    <ul>
                        <li>1900 para computador full hd</li>
                        <li>720 para usuário de tablet</li>
                        <li>mostrar 480 para usuário de smartphone</li>
                    </ul>
                       
            </ul>
    </ul>
     <p>
        A idéia é carregar no servidor as três imagens, mas mostrar no site somente a imagem do respectivo device. Talvez em baixa fidelidade e depois entregar em alta qualidade quando comprar para download com uma hash de controle. 
    </p>

    <h3>Descobertas feitas no gimp e tiny png</h3>

    <p> a imagem jpeg jean-carlo-emer-r7gWCwTFOpM-unsplash.jpg foi de 2705 kB(2,7MB) para 467 kb redimensionando ela no gimp, depois no tiny png a convertemos para webp chegando 404kB</p>

    <img src="imagens/jean-carlo-emer-r7gWCwTFOpM-unsplash-1080.webp" alt="jean-carlo-emer-r7gWCwTFOpM-unsplash-1080 em webp">

        <p>Como podem ver ainda preciso me aprofundar mais em tratamento de imagens no gimp e como torna-lás mas o responsivo possível aos devices sem perder Performance e Qualidade </p>

    <img src="imagens/jean-carlo-emer-r7gWCwTFOpM-unsplash-1920.jpg" alt="imagens/jean-carlo-emer-r7gWCwTFOpM-unsplash-gimp-1920.jpg">

</body>
</html>
1 resposta

Oii, Esperidião!

Sobre redimensionar imagens, performance, UX e qualidade no HTML e CSS, sua reflexão vai além do exercício e aborda práticas muito utilizadas no desenvolvimento web. O ganho que você conseguiu ao reduzir o tamanho da imagem com o GIMP e depois convertê-la para WebP já mostra como a otimização influencia diretamente no carregamento da página.

Para entregar a melhor experiência em diferentes dispositivos, a abordagem mais utilizada hoje não é detectar o aparelho no backend, mas permitir que o próprio navegador escolha a imagem mais adequada utilizando os atributos srcset e sizes. Dessa forma, você pode disponibilizar versões da mesma imagem em diferentes resoluções e o navegador fará a seleção automaticamente.

Veja este exemplo:

<img
src="imagem-1080.webp"
srcset="
imagem-480.webp 480w,
imagem-720.webp 720w,
imagem-1080.webp 1080w,
imagem-1920.webp 1920w"
sizes="(max-width: 600px) 480px,
(max-width: 900px) 720px,
100vw"
alt="Descricao da imagem">

Nesse exemplo, o navegador analisa a largura disponível e escolhe a imagem mais adequada para o dispositivo, reduzindo o consumo de banda sem perder qualidade visual.

Sobre o GIMP, um detalhe importante é que a DPI influencia a impressão, mas praticamente não interfere na exibição da imagem na web. Para sites, o que realmente faz diferença são:

  • dimensões em pixels;
  • peso do arquivo;
  • formato da imagem (como WebP ou AVIF, quando houver suporte);
  • uso de compressão sem comprometer a qualidade perceptível.

Sua observação sobre UX e acessibilidade também faz sentido. Uma boa otimização melhora o tempo de carregamento, reduz o consumo de dados e proporciona uma navegação mais fluida. Além disso, utilizar um atributo alt descritivo, como você fez, contribui para a acessibilidade de pessoas que utilizam leitores de tela.

Uma prática bastante comum é gerar automaticamente várias versões da imagem durante o processo de publicação da aplicação, deixando o servidor ou o navegador entregar apenas a resolução necessária para cada contexto.

Qual estratégia você pretende explorar primeiro: utilizar srcset para imagens responsivas ou automatizar a geração das diferentes versões das imagens durante o desenvolvimento?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!