Discourse perde os pixels superior/inferior ao gerar miniaturas

Ao anexar imagens a uma postagem, o Discourse redimensiona-as para criar miniaturas adequadas para exibição.

Parece haver um bug nesse processo, que faz com que as linhas superior e inferior de pixels sejam consistentemente perdidas.

Isso não é um grande problema, mas faz com que elementos com bordas finas pareçam estranhos. (Por exemplo, a maioria das capturas de tela de software do Windows 10 parece incorreta porque a borda inferior da janela não aparece.)

Observações:

  • Não parece estar relacionado à proporção da imagem, então não acredito que seja um recorte intencional de imagens muito largas ou altas; parece ser um bug.

  • Verifiquei que os pixels estão faltando no recurso da imagem da miniatura em si. Portanto, o problema ocorre quando a miniatura é gerada no backend, não quando é exibida pelo navegador.

  • Edição: Acabei de notar que os pixels superior e inferior não desaparecem completamente, mas ficam tão mesclados/desbotados que praticamente sumiram. Talvez tenha a ver com como as bordas da imagem são tratadas pelo algoritmo de redimensionamento? Isso nunca parece acontecer nas bordas esquerda e direita, por exemplo, em capturas de tela com proporção vertical.

  • Quando você clica para ver a imagem em tamanho original, ela é exibida corretamente, pelo menos.

Espero que esta imagem de exemplo reproduza o problema aqui no fórum do Discourse:

Deveria ser uma imagem branca com uma borda vermelha de 1 pixel em todos os lados. Se o problema ocorrer aqui, você só verá as bordas esquerda e direita até clicar para ver a imagem em tamanho original.

(Edição: De fato, parece estar ocorrendo aqui.)

Caso não ocorra, este é o resultado que vejo no meu próprio fórum:

Ao testar isso, você precisa esperar um pouco após a postagem (e às vezes atualizar o tópico) para que o problema ocorra, pois leva alguns segundos após a postagem para que a miniatura seja gerada no lado do servidor.

4 curtidas

Sim, eu também notei isso há bastante tempo. Não tenho certeza do que pode ser feito a respeito.

1 curtida

Interessante, vejo o topo, a esquerda e a direita, mas não a parte inferior.

chrome://gpu
Versão do Chrome Chrome/87.0.4280.141
Sistema operacional Windows NT 10.0.19042
GL_RENDERER ANGLE (Intel(R) HD Graphics 620 Direct3D11 vs_5_0 ps_5_0)
1 curtida

Me pergunto se isso depende do tamanho da tela, com diferentes recursos sendo servidos a diferentes clientes.

Dando uma rápida olhada na postagem/imagem acima via F12, encontrei dois recursos, além da imagem original:

  • Imagem original (1416 x 946) /original/3X/e/2/e2c5f032e18fa374c0593af71cf25d3499826289.png, que está inalterada. URL direta

  • Versão menor (1380 x 920) optimized/3X/e/2/e2c5f032e18fa374c0593af71cf25d3499826289_2_1380x920.png, que tem bordas superior e inferior (quase) invisíveis. URL direta

  • Versão ainda menor (640x460) optimized/3X/e/2/e2c5f032e18fa374c0593af71cf25d3499826289_2_690x460.png, que não tem nenhuma borda inferior, mas possui as bordas esquerda, superior e direita. URL direta

Pode haver alguns argumentos do ImageMagick para ajustar o algoritmo de dimensionamento e como ele lida com pixels nas bordas, embora qualquer alteração, é claro, possa piorar outras situações enquanto melhora esta.

1 curtida

Sim, essa é a minha opinião também. É um problema de algoritmo de redimensionamento. Enquanto a versão original for preservada, não vejo um problema sério aqui, então estou movendo para solicitação de recurso.

4 curtidas