Notas da equipe sobre ofício, formatos e as pequenas decisões por trás de um bom resultado.
O contêiner sem perdas, o que o PNG guarda
O PNG usa o algoritmo de compressão de alta fidelidade DEFLATE. Ele guarda os valores RGBA de cada elemento da imagem exatamente como recebidos, aplica um filtro reversível a cada linha de varredura, e comprime o resultado com uma variante do zlib. Alta fidelidades significa que os valores da imagem descomprimidos são byte a byte idênticos aos originais. No caso JPG para PNG, os originais são os elementos produzidos quando o navegador decodifica o JPEG. Esses elementos decodificados já refletem todas as aproximações que o JPEG fez durante sua codificação original, então o PNG guarda fielmente os elementos aproximados, não a cena do mundo real. Medido, um JPEG de a 1024x768 decodifica para cerca de como PNG, e um JPEG de a 3840x2160 cresce para uns . Esses múltiplos se mantêm aproximadamente entre tipos de conteúdo porque a razão acompanha a resolução, não o nível de qualidade do JPEG. O formato de alta fidelidade vale pelo que evita, mais degradação, não pelo que restaura.
Por que a qualidade do JPEG não pode ser recuperada
A compressão JPEG descarta informação de forma permanente. O processo de codificação aplica uma transformada de cosseno discreta a blocos de 8x8 elementos, quantiza os coeficientes de frequência resultantes para um conjunto menor, e guarda esses valores quantizados. O passo de quantização é de mão única, já que um coeficiente que era 47 e foi arredondado para 50 não pode voltar a 47 depois, e nenhum registro do valor original sobrevive no arquivo. Quando o navegador decodifica o JPEG, ele reconstrói elementos a partir dos coeficientes quantizados, que são aproximações dos valores originais. Regravar esses elementos aproximados como PNG produz um registro de alta fidelidade das aproximações, então o PNG é uma representação perfeita da imagem degradada. Isto não é uma limitação do PNG nem desta ferramenta, é uma propriedade fundamental da compressão com perdas, onde a informação descartada no momento da codificação se foi. Melhorar a qualidade do JPEG exige partir do original sem compressão ou RAW.
Crescimento de tamanho de arquivo medido
A razão de tamanho de JPG para PNG varia conforme o conteúdo da imagem, mas segue um padrão previsível. Imagens fotográficas com variação tonal complexa crescem mais, porque a transformada do JPEG é afinada exatamente para esse conteúdo e atinge altas razões de compressão, enquanto a compressão de alta fidelidade do PNG não consegue igualar essas razões em dados da imagem ruidosos. Medições de teste desta ferramenta mostram uma foto JPEG de a 1024x768 produzindo um PNG de , cerca de 6x de crescimento, e uma foto JPEG de a 3840x2160 produzindo um PNG de , cerca de 3,3x de crescimento. Para imagens de cor plana como capturas de tela e ícones, o JPEG já é mal adequado ao conteúdo e seus arquivos tendem a ser maiores para qualidade equivalente, então o PNG do mesmo conteúdo cresce de forma menos dramática. A implicação prática é direta, se o tamanho do arquivo de saída importa para o seu caso, converter um JPG para PNG piora a situação, não melhora.
Transparência, o recurso versus o conteúdo
O PNG suporta um nível de transparência como recurso de formato, onde um arquivo pode incluir valores de opacidade por elemento variando de 0 (totalmente transparente) a 255 (totalmente opaco). Quando um JPG é convertido para PNG por regravação através do motor de imagem da plataforma, o PNG resultante fica totalmente opaco, com cada elemento da imagem em valor de opacidade máxima de 255, porque o JPG de origem não tinha nenhuma informação de transparência para começar. O formato PNG está pronto para guardar transparência, o arquivo apenas não contém nenhuma, porque nenhuma estava presente na origem. Adicionar transparência à imagem exige processamento separado, seja mascarando o fundo num editor ou usando um passo automatizado de remoção de fundo. Uma ferramenta de remoção de fundo treinada para identificar o objeto pode produzir um PNG com opacidade real zerando os valores opacidade dos elementos de fundo após a conversão.
Tratamento de metadados EXIF
O processo de regravação retira os metadados EXIF, IPTC e XMP da saída PNG em todos os navegadores. Isso significa que coordenadas de GPS, modelo da câmera, data de captura, textos de direitos autorais, e quaisquer campos XMP personalizados presentes no JPG de origem são removidos. Os perfis de cor ICC seguem um caminho um pouco diferente, onde Chrome e Safari preservam a marcação do perfil ICC sRGB na saída e o Firefox a retira junto com todos os outros metadados. O resultado prático é uma saída segura em sRGB entre navegadores, mas perfis de gama ampla como Display-P3 ou Adobe RGB se perdem no Firefox. Para a maioria dos usos de web e compartilhamento, a remoção de metadados ajuda, já que reduz um pouco o tamanho da saída e remove dados de localização das fotos. Para fotografia profissional ou fluxos de arquivamento onde os metadados embutidos precisam ser preservados, trate a cadeia de metadados com uma ferramenta dedicada antes ou depois da conversão de formato.
Privacidade na prática
Onde a conversão acontece depende do número de arquivos. Para uma única imagem, nenhum dado sai do navegador, e isso é verificável em tempo real. A rede permanece inativa durante uma conversão única. A lista fica vazia durante a codificação. Para dois ou mais arquivos, o RoundCut os envia ao nosso servidor, que converte, compacta o resultado e devolve um link de download. Esse link e os arquivos convertidos são apagados em cerca de 2 horas. O caminho de uma imagem só roda inteiramente no seu dispositivo, fora da rede, enquanto o caminho em lote troca isso pela praticidade de converter muitos arquivos de uma vez. Para imagens com conteúdo sensível, como a captura de um documento pessoal ou uma foto com dados de localização, converter uma por vez mantém tudo local.