Trilha de aprendizado · Nível 4 · Tutorial 4

Alternar recortes e formatos de imagem com picture

Usar picture para oferecer enquadramentos ou formatos alternativos, preservando uma imagem de reserva e um significado consistente.

  • Nível: Intermediário
  • Duração: 18 min
  • 7 passos
Alternar recortes e formatos de imagem com picture

O que você vai percorrer

  1. Quando a imagem precisa de outro recorte Distinguir troca de resolução de direção de arte e reconhecer quando um recorte diferente melhora o destaque visual. 2 min
  2. Organizar picture, source e img Monte a estrutura básica de picture e identifique onde ficam os arquivos candidatos, a imagem de reserva e o texto alternativo. 2 min
  3. Escolher recortes com media Defina uma condição de largura da viewport e preveja quando o navegador seleciona o recorte de source ou a imagem de reserva. 3 min
  4. Oferecer formatos com type Declare o formato de uma alternativa e preveja sua seleção conforme o suporte do navegador. 3 min
  5. Combinar condições e definir a prioridade Ordene fontes que combinam recortes e formatos e preveja qual arquivo será selecionado. 3 min
  6. Preservar o significado entre as variantes Avalie se todos os recortes, inclusive a reserva, preservam a informação essencial e continuam compatíveis com o alt. 2 min
  7. Aplicação final: recortes, formatos e reserva Corrija uma estrutura picture, confira a seleção de arquivos e preserve o significado da imagem em todos os recortes. 4 min

O que você vai aprender

  • Distinguir troca de resolução de troca intencional de enquadramento.
  • Organizar source e img dentro de picture na ordem adequada.
  • Usar media para oferecer recortes apropriados a diferentes larguras de viewport.
  • Usar type para oferecer formatos alternativos conforme o suporte do navegador.
  • Manter o conteúdo essencial e a adequação do texto alternativo entre as variantes.

Antes de começar

  • Oferecer resoluções de imagem com srcset e sizes

Passo 1 de 7

Quando a imagem precisa de outro recorte

Distinguir troca de resolução de direção de arte e reconhecer quando um recorte diferente melhora o destaque visual.

Mais pixels ou outro enquadramento?

Trocar a resolução mantém o enquadramento e muda a quantidade de pixels, como você já viu com srcset e sizes.

Na direção de arte, você escolhe intencionalmente outro recorte ou composição para destacar o que importa em diferentes condições de exibição.

À esquerda, uma foto ampla do ateliê mostra a ceramista pequena no centro. À direita, um recorte da mesma foto, exibido na mesma largura, mostra a ceramista, suas mãos e o vaso em destaque.

Na mesma largura disponível, reduzir a foto inteira deixa a ação pequena. Um recorte mais próximo dá destaque à ação.

Escolha pelo problema visual

O que precisa mudar?

Uma matéria ensina a modelar um vaso. Em uma viewport estreita, a foto inteira do ateliê cabe, mas as mãos da ceramista ficam pequenas demais. Qual escolha resolve o problema de destaque visual?

Onde entra picture

Selecionar uma alternativa

O elemento picture funciona como um contêiner de alternativas de fonte para uma imagem. Você declara condições de uso, e o navegador seleciona uma alternativa adequada — por exemplo, um recorte mais próximo para uma viewport estreita.

Dica

Os arquivos precisam estar prontos

Prepare e salve as variantes antes de indicá-las no HTML. picture não recorta imagens nem converte formatos: ele permite selecionar entre arquivos já disponíveis.

Nem toda adaptação pede um recorte

É direção de arte?

Uma foto de produto já tem um bom enquadramento em todas as larguras previstas. Oferecer uma versão com mais pixels, mantendo exatamente a mesma composição, é direção de arte.

Passo 2 de 7

Organizar picture, source e img

Monte a estrutura básica de picture e identifique onde ficam os arquivos candidatos, a imagem de reserva e o texto alternativo.

Alternativas antes da imagem

A estrutura por dentro

Os elementos source são filhos diretos de picture e ficam antes de um único img, obrigatório.

Dentro de picture, cada source usa srcset para indicar os arquivos candidatos. Ele é um elemento vazio: não tem tag de fechamento.

Estrutura básica

Aqui, o foco é a estrutura, ainda sem condições de seleção.

html
<picture>
  <source srcset="vaso-alternativa.jpg">
  <img src="vaso.jpg" alt="Vaso de argila sobre uma bancada">
</picture>

Dica

Uma imagem, não uma galeria

source não exibe uma imagem extra. É img que apresenta a imagem selecionada e mantém o atributo alt, inclusive quando o arquivo escolhido vem de source.

Monte a estrutura

Cada elemento no lugar certo

Ordene as linhas para formar uma estrutura válida de picture.

  1. </picture>
  2. <picture>
  3. <source srcset="oficina-alternativa.jpg">
  4. <img src="oficina.jpg" alt="Artesã moldando um vaso de argila">

O papel da reserva

Quando o src de img entra em cena

O src de img fornece a imagem de reserva quando nenhum source é aplicável.

Se o navegador não reconhecer picture, ainda poderá apresentar a imagem usando o src de img. Por isso, mantenha esse atributo preenchido com um caminho válido.

Atenção

Reserva não garante recuperação de falhas

Se o download do arquivo escolhido em source falhar, não há garantia de tentativa automática do próximo source ou do src de img.

Não conte com a reserva para corrigir caminhos inválidos: confira o carregamento de todos os arquivos.

Distribua as responsabilidades

Qual atributo, em qual elemento?

Associe cada função ao atributo e ao elemento corretos na estrutura básica que você montou.

Toque em um item e depois no par correspondente.

Passo 3 de 7

Escolher recortes com media

Defina uma condição de largura da viewport e preveja quando o navegador seleciona o recorte de source ou a imagem de reserva.

Uma condição no próprio HTML

O atributo media de source define uma condição para usar aquela alternativa. Aqui, a condição considera a largura da viewport, a área em que o navegador exibe a página.

  • (min-width: 800px): 800px ou mais.
  • (max-width: 800px): 800px ou menos.

O limite está incluído nos dois casos. As medidas são em pixels CSS, e a condição fica no próprio HTML, sem precisar criar uma folha de estilos.

Enquadramento amplo a partir de 800px

html
<picture>
  <source media="(min-width: 800px)" srcset="horta-ampla.jpg">
  <img src="horta-proxima.jpg" alt="Pessoa colhendo alface na horta">
</picture>

Com viewport de 800px ou mais, a condição é atendida: o arquivo selecionado é horta-ampla.jpg. Abaixo de 800px, esse source não se aplica, e o navegador usa horta-proxima.jpg, indicado em img.

Complete a condição para o recorte próximo

Agora o requisito mudou: use o recorte próximo em viewports de até 600px, inclusive. Acima disso, use a imagem ampla de reserva.

html
<picture>
  <source media="(___: 600px)" srcset="horta-proxima.jpg">
  <img src="horta-ampla.jpg" alt="Pessoa colhendo alface na horta">
</picture>

Qual nome de condição substitui ___?

Selecionar não é dimensionar

A largura importa, não o aparelho

media não identifica um modelo de celular ou computador. Uma janela estreita no computador também pode atender a (max-width: 600px). O critério é a largura da viewport naquele momento.

Dica

600px não é a largura definida para a imagem

media="(max-width: 600px)" participa da escolha do arquivo. Não limita a imagem a 600px nem faz com que ela ocupe toda a viewport. Controlar o tamanho de exibição é uma decisão separada.

Teste abaixo, no limite e acima

Marcação para testar

html
<picture>
  <source media="(max-width: 600px)" srcset="horta-proxima.jpg">
  <img src="horta-ampla.jpg" alt="Pessoa colhendo alface na horta">
</picture>

Em um navegador com suporte a picture e com os arquivos disponíveis, quais imagens serão selecionadas nas viewports de 599px, 600px e 601px, respectivamente?

Passo 4 de 7

Oferecer formatos com type

Declare o formato de uma alternativa e preveja sua seleção conforme o suporte do navegador.

Identificar o formato

Tipo MIME: o nome padronizado do formato

Em um source, o atributo type informa o tipo MIME do arquivo: uma identificação padronizada do seu formato. O navegador usa essa informação para desconsiderar alternativas em formatos que não suporta.

Estas são as correspondências:

  • AVIF → image/avif
  • WebP → image/webp
  • JPEG → image/jpeg

O valor de type é o tipo MIME completo, não apenas a extensão do arquivo.

Relacione formato e tipo MIME

Qual valor usar em type?

Associe cada formato ao tipo MIME correspondente.

Toque em um item e depois no par correspondente.

Uma alternativa e uma reserva

Os dois arquivos abaixo já existem e mostram a mesma foto, com o mesmo enquadramento. A diferença é o formato.

AVIF com reserva em JPEG

html
<picture>
  <source srcset="jardim.avif" type="image/avif">
  <img src="jardim.jpg" width="800" height="600"
       alt="Canteiro de girassóis ao lado de um caminho de pedras.">
</picture>

Em um navegador que reconhece picture:

  • Com suporte a AVIF: seleciona jardim.avif.
  • Sem suporte a AVIF: desconsidera esse source e usa jardim.jpg de img, supondo suporte a JPEG.

Atenção

Declarar não é converter

O valor de type deve corresponder ao formato real do arquivo. Escrever type="image/avif" para um arquivo JPEG não o transforma em AVIF. É necessário fornecer um arquivo que já esteja no formato declarado.

Preveja a seleção

Agora, uma alternativa em WebP

html
<picture>
  <source srcset="jardim.webp" type="image/webp">
  <img src="jardim.jpg" width="800" height="600"
       alt="Canteiro de girassóis ao lado de um caminho de pedras.">
</picture>

Qual arquivo cada navegador seleciona?

Os arquivos estão disponíveis nos formatos declarados. Os navegadores A e B reconhecem picture e suportam JPEG. O navegador A também suporta WebP; o B não suporta WebP. Qual é o resultado?

Passo 5 de 7

Combinar condições e definir a prioridade

Ordene fontes que combinam recortes e formatos e preveja qual arquivo será selecionado.

O primeiro source aplicável vence

O navegador avalia os elementos source na ordem do documento. Seleciona o primeiro com candidatos válidos em srcset, condição media atendida e type suportado, quando esses atributos estão presentes.

No mesmo source, media e type precisam ser atendidos juntos. Sem media, a fonte não tem restrição de largura.

Problema: alternativa geral antes do recorte

html
<picture>
  <source type="image/webp" srcset="ciclista-geral.webp">
  <source media="(max-width: 600px)" type="image/avif" srcset="ciclista-recorte.avif">
  <img src="ciclista-geral.jpg" alt="Ciclista pedalando">
</picture>

Atenção

Mais específico não significa prioritário

Com viewport de 480 px e suporte a WebP e AVIF, esse código seleciona ciclista-geral.webp. O primeiro source já é aplicável: o navegador não procura depois uma condição de largura mais específica.

Dica

Recorte primeiro, formatos dentro dele

Agrupe as fontes pela condição de recorte e, dentro dela, pela preferência de formatos. Inclua um JPEG com a mesma media antes das alternativas gerais para preservar o recorte mesmo sem suporte a AVIF ou WebP.

Organize as prioridades

Coloque os source na ordem adequada

Até 600 px, inclusive, use o recorte, preferindo AVIF, depois WebP e depois JPEG. Acima disso, ofereça a imagem geral em WebP.

O img com src="ciclista-geral.jpg" já ficará no final de picture. Ordene os quatro elementos source que vêm antes dele.

  1. <source media="(max-width: 600px)" type="image/jpeg" srcset="ciclista-recorte.jpg">
  2. <source type="image/webp" srcset="ciclista-geral.webp">
  3. <source media="(max-width: 600px)" type="image/avif" srcset="ciclista-recorte.avif">
  4. <source media="(max-width: 600px)" type="image/webp" srcset="ciclista-recorte.webp">

Duas funções diferentes para o JPEG

Veja a estrutura resultante. ciclista-recorte.jpg preserva o enquadramento para viewports de até 600 px. Já ciclista-geral.jpg, no img, é a reserva geral quando nenhum source é aplicável.

Recorte protegido antes das alternativas gerais

html
<picture>
  <source media="(max-width: 600px)"
          type="image/avif" srcset="ciclista-recorte.avif">
  <source media="(max-width: 600px)"
          type="image/webp" srcset="ciclista-recorte.webp">
  <source media="(max-width: 600px)"
          type="image/jpeg" srcset="ciclista-recorte.jpg">
  <source type="image/webp" srcset="ciclista-geral.webp">
  <img src="ciclista-geral.jpg" alt="Ciclista pedalando">
</picture>

Exemplo

Sem os formatos preferidos

Em 480 px, com suporte a JPEG, mas sem AVIF nem WebP, os dois primeiros source são desconsiderados pelo formato. O terceiro atende à largura e ao suporte: o recorte JPEG é selecionado antes de chegar ao img.

Preveja o arquivo selecionado

Associe cada cenário ao arquivo

Use a estrutura da tela anterior. Considere um navegador que reconhece picture, todos os arquivos válidos e disponíveis e um único arquivo por srcset.

Toque em um item e depois no par correspondente.

Passo 6 de 7

Preservar o significado entre as variantes

Avalie se todos os recortes, inclusive a reserva, preservam a informação essencial e continuam compatíveis com o alt.

Outro enquadramento, mesma informação

As variantes de um picture devem cumprir a mesma finalidade no contexto. O enquadramento pode mudar, mas pessoas, objetos, ações ou relações essenciais precisam continuar visíveis. Nesta imagem sobre doação de livros, o essencial é a entrega entre as duas pessoas.

Dois enquadramentos da mesma entrega de um livro: ambos mostram a voluntária e a estudante; só o amplo inclui uma estante.

À esquerda, cena ampla; à direita, recorte aproximado da mesma entrega.

Dica

Um alt para todas as variantes

O alt fica em img e deve atender a qualquer variante selecionada. Os elementos source não têm textos alternativos independentes.

Quando ajustar o texto alternativo

A estante ficou fora do recorte

O alt proposto é “Voluntária entrega um livro a uma estudante ao lado de uma estante”. A entrega aparece nos dois enquadramentos, mas a estante não. Como adequar o texto à finalidade de mostrar a doação?

Quando refazer o recorte

Se o corte elimina informação essencial, revise o arquivo. Na cena da doação, mostrar só o rosto da voluntária não preserva a entrega. Trocar o alt por “Voluntária” não resolve: o texto combina com o recorte, mas a imagem deixa de cumprir sua finalidade.

Dica

A reserva também conta

Confira também o arquivo indicado em img src: ele deve preservar a informação essencial e ser compatível com o mesmo alt.

Revise as três versões

Preserve o trabalho em dupla

Em uma matéria sobre trabalho em dupla na horta, a imagem deve mostrar duas pessoas plantando juntas.

  • Variante ampla: duas pessoas plantam uma muda juntas.
  • Recorte estreito: só uma das pessoas aparece plantando a muda.
  • Reserva em img: aparece apenas a muda, sem pessoas.

Alt proposto: “Duas pessoas plantam uma muda juntas”.

Quais versões perdem informação essencial? Indique uma correção e diga se o alt pode ser mantido após ela.

Escreva pelo menos 30 caracteres (0/30).

Passo 7 de 7

Aplicação final: recortes, formatos e reserva

Corrija uma estrutura picture, confira a seleção de arquivos e preserve o significado da imagem em todos os recortes.

O pedido da página

Dois recortes, uma informação

Em uma matéria sobre cerâmica, a imagem mostra uma artesã moldando um vaso no torno. Os recortes fechado e amplo preservam a artesã, suas mãos, o vaso e o torno. Só o amplo inclui prateleiras ao fundo, um detalhe não essencial à matéria.

Arquivos e critérios

Os seis arquivos já estão preparados, na mesma pasta do HTML:

  • Fechado: ceramica-fechado.avif, ceramica-fechado.webp e ceramica-fechado.jpg.
  • Amplo: ceramica-amplo.avif, ceramica-amplo.webp e ceramica-amplo.jpg.

Até 600 px de largura da viewport, inclusive, use o recorte fechado. Acima disso, use o amplo. Para cada recorte, a preferência é AVIF → WebP → JPEG. A reserva geral deve ser o JPEG amplo.

Dica

Qual é a decisão aqui?

Este pedido exige direção de arte: o enquadramento muda. Oferecer apenas resoluções diferentes do mesmo recorte não atenderia ao objetivo.

Corrija a implementação

Trecho a revisar

Este código ainda não atende a todos os critérios do pedido.

html
<picture>
  <source type="image/avif" srcset="ceramica-amplo.avif">
  <source type="image/webp" srcset="ceramica-amplo.webp">
  <source media="(max-width: 600px)" type="image/avif" srcset="ceramica-fechado.avif">
  <source media="(max-width: 600px)" type="image/webp" srcset="ceramica-fechado.webp">
  <img src="ceramica-amplo.jpg" alt="Artesã moldando um vaso no torno, com prateleiras ao fundo.">
</picture>

Entregue uma versão corrigida

Reescreva o picture completo para:

  1. Corrigir a prioridade das fontes.
  2. Preservar o recorte fechado até 600 px, mesmo sem suporte a AVIF e WebP.
  3. Manter a reserva geral e um alt adequado a todas as variantes.

Depois do código, justifique brevemente a ordem escolhida e o ajuste no alt.

Escreva pelo menos 100 caracteres (0/100).

Confira a seleção

Qual arquivo será escolhido?

Considere a solução corrigida: recorte fechado até 600 px; amplo acima disso; preferência AVIF → WebP → JPEG.

Associe cada cenário ao arquivo selecionado. O navegador reconhece picture, todos os arquivos são válidos e os formatos listados são os suportados.

Toque em um item e depois no par correspondente.

Revisão final

Resumo

Critérios para revisar seu picture

Antes de considerar a implementação pronta, confira:

  • Intenção: mudar o enquadramento exige direção de arte, não apenas variantes de resolução.
  • Prioridade: organize source antes de um único img, por recorte e preferência de formato. Quando media e type estão juntos, ambos precisam permitir a seleção.
  • Cobertura: teste o limite de largura e a ausência dos formatos preferidos. Um JPEG condicionado pode preservar o recorte desejado.
  • Reserva: mantenha src em img, mas não conte com ele para recuperar automaticamente uma falha no download da fonte escolhida.
  • Significado: todos os recortes, inclusive a reserva, devem manter a informação essencial e ser compatíveis com o único alt de img.

Tutorial concluído

Parabéns! Você concluiu: Alternar recortes e formatos de imagem com picture

Você concluiu “Alternar recortes e formatos de imagem com picture”. Use os critérios de recorte, compatibilidade, prioridade e significado para montar e revisar suas próximas imagens.

Baixe o Aplicativo agora para ter acesso a + de 5000 cursos gratuitos, exercícios, certificado e muito conteúdo sem pagar nada!

  • Cursos online 100% gratuitos do início ao fim

    Milhares de cursos online em vídeo, ebooks e áudiobooks.

  • Mais de 60 mil exercícios gratuitos

    Para testar seus conhecimentos no decorrer dos cursos online

  • Certificado Digital gratuito válido em todo o Brasil

    Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail

Aplicativo Cursa na tela de ebook, na tela de curso em vídeo e na tela de exercícios do curso, mais o certificado de conclusão de curso