Erro ao fazer upload de imagem ao usar o redimensionador

Se você tentar fazer upload de um PNG grande que precise ser redimensionado para atender ao tamanho máximo da imagem em KB, você receberá um erro:

lib/discourse.rb:57:in `exec': convert: cabeçalho de imagem incorreto `/tmp/image20200221-243-17ldizm.jpg' @ error/png.c/ReadPNGImage/4294.

Se você alterar a extensão da imagem para .jpeg, o upload funciona perfeitamente!

Também funciona normalmente se você redefinir o tamanho máximo da imagem em KB para o padrão, no entanto, parece que a imagem está sendo renomeada como jpeg de qualquer forma.

Aqui está a imagem: Dropbox


Edição: Acabei de notar isso também na opção tamanho máximo da imagem em KB:

O tamanho máximo de upload de imagem em kB. Isso também deve ser configurado no nginx (client_max_body_size) / apache ou proxy.

Acho que não fiz isso — será que pode estar causando o problema? (alguns exemplos de onde editar isso?)

1 curtida

Deve ser possível aumentar esse valor adicionando um parâmetro upload_size ao arquivo app.yml do seu site. Veja Change the maximum attachment/upload size para detalhes.

5 curtidas

Mudei max image size kb para 500k e a imagem foi carregada. Mas me pergunto se a mensagem de erro mostrada aos usuários não deveria ser algo como “Falha no upload: imagem muito grande, redimensione e tente novamente”?

5 curtidas

A mensagem de erro é realmente ruim, embora eu me pergunte quantas pessoas alteram essa configuração de qualquer forma?

5 curtidas

Não consigo lembrar com certeza agora, mas, se não me engano, se você diminuir essa configuração e uma imagem enviada for maior que esse limite, o Discourse tentará redimensionar a imagem para reduzi-la.

Acho que está relacionado à configuração qualidade de PNG para JPG? Faz um tempo, mas acredito que o Sam trabalhou no redimensionador de imagens.

Quanto a quem gostaria de alterá-la (ou, melhor dizendo, prefere tamanhos de imagem menores), imagino que seja em qualquer site onde a qualidade da imagem seja menos importante (ou seja, a maioria dos sites, exceto os de fotografia).


Uma busca rápida trouxe este - então parece que o redimensionador ainda não foi implementado (mas eu tinha certeza de que já tinha sido :thinking:)

1 curtida

Essa também era a minha compreensão… que havia um redimensionamento em vigor que processa uploads grandes no servidor.

EDITO/ATUALIZAÇÃO:

Agora já foi bastante bem descrito aqui:

5 curtidas

@dan, você consegue encontrar uma maneira de exibir uma mensagem de erro mais clara quando um usuário tenta fazer upload de uma imagem muito grande? Baixa prioridade.

4 curtidas

Corrigi os dois problemas aqui:

  1. O pipeline de otimização de imagens converteu PNGs para JPEGs e, em seguida, tentou otimizar os JPEGs resultantes usando as operações para imagens PNG.

  2. Erros do ImageMagick foram retornados ao usuário, mas não foram úteis de forma alguma (por exemplo, convert: improper image header...)

8 curtidas