Você exporta uma foto e ela fica certa. Você sobe, e no site as cores saem apagadas. Ou o contrário: uma captura do seu celular aparece berrantemente saturada no notebook de outra pessoa. Ninguém editou nada no meio. Os pixels não mudaram.
O que mudou foi a interpretação, e entender por quê exige uma única ideia.
Um pixel guarda algo como 255, 0, 0. É tentador ler isso como «vermelho», mas não é. Significa o mais vermelho que este sistema consegue produzir — e quão vermelho isso é de fato depende inteiramente de qual sistema você quer dizer.
Um espaço de cor é a definição que transforma esses números em cores reais. Ele especifica a qual vermelho, verde e azul físicos os valores máximos correspondem. Troque o espaço e 255, 0, 0 vira outro vermelho, mesmo sem um único bit do arquivo ter se mexido.
É o problema inteiro. Os mesmos números, lidos contra duas definições diferentes, produzem duas imagens diferentes.
O sRGB foi padronizado em 1996, construído em torno do que os monitores daquela época faziam. É o menor denominador comum e continua sendo a suposição padrão da web. Sua faixa de cores reproduzíveis — seu gamut — é modesta, e é justamente por isso que é seguro: quase toda tela feita desde então mostra tudo dele.
O Display P3 é o espaço mais amplo usado hoje pela maioria dos celulares, notebooks e televisores. Cobre cerca de 25% mais cor que o sRGB, e o extra está sobretudo em vermelhos e verdes saturados. Um pôr do sol intenso ou uma folha verde-escura têm cores que existem em P3 e simplesmente não podem ser representadas em sRGB — são recortadas para a cor sRGB mais próxima, que é mais apagada.
Então o P3 é melhor no sentido de conseguir descrever mais. Isso não é o mesmo que ser a escolha certa para um arquivo específico.
Toda imagem pode carregar uma etiqueta pequena chamada perfil ICC dizendo a qual espaço seus números pertencem. Gerenciamento de cor é simplesmente ler essa etiqueta e ajustar a exibição conforme.
A falha tem uma forma e duas direções:
Dados P3, sem perfil, exibidos como sRGB. O software vê números saturados e os interpreta contra a definição mais estreita. Tudo sai vivo demais — a pele parece queimada, os vermelhos brilham, os verdes ficam radioativos. É de longe a versão mais comum, e é o que as pessoas querem dizer quando falam que uma imagem «ficou estranha na web».
Dados sRGB lidos como P3. O oposto: tudo sai lavado e meio cinza.
Nos dois casos a imagem está intacta. O que falta ou está errado é a etiqueta.
Isso merece aviso próprio porque é um conselho que as pessoas seguem por boas razões e depois não conseguem explicar o resultado.
Otimizar imagens para web costuma incluir apagar metadados — ajustes da câmera, GPS, data — para economizar bytes. É bom conselho. Mas o perfil ICC também é metadado, e uma ferramenta configurada para apagar tudo leva ele junto.
O arquivo fica alguns kilobytes menor e as cores quebram, de um jeito invisível na máquina em que você trabalha se a tela dela por acaso bater com a suposição. Mantenha o perfil de cor ao remover metadados. Ele é pequeno, e é a única parte que muda a aparência.
Softwares de imagem oferecem duas operações que soam iguais e fazem o oposto. Confundi-las é como cores são destruídas permanentemente.
Converter para um espaço: o software recalcula cada pixel para que a cor que você vê fique o mais parecida possível. Os números mudam; a aparência se preserva. É quase sempre o que você quer.
Atribuir um espaço: os números ficam exatamente iguais e a etiqueta muda. A aparência se desloca, porque os mesmos números agora significam outra coisa.
Atribuir serve numa situação: quando um arquivo perdeu o perfil e você sabe qual deveria ser, atribuir o correto restaura a verdade. Usado por engano — atribuir sRGB a uma imagem P3 em vez de convertê-la — ele assa as cores erradas dentro do arquivo.
Você pode estar produzindo imagens P3 sem ter escolhido. Fotos e capturas de iPhone são P3 por padrão. Câmeras modernas com perfis de gamut amplo também. Gravações de tela e ferramentas de design em hardware recente, frequentemente também.
É por isso que o problema aparece do nada para quem nunca tocou num ajuste de cor: o lado da captura ficou amplo enquanto o da entrega continuou sRGB, e a única coisa segurando isso é uma etiqueta que alguma ferramenta no meio pode descartar em silêncio.