Error al subir imagen al usar el redimensionador

Si intentas subir un PNG grande que necesite ser redimensionado para cumplir con max image size kb, obtienes un error:

lib/discourse.rb:57:in `exec': convert: improper image header `/tmp/image20200221-243-17ldizm.jpg' @ error/png.c/ReadPNGImage/4294.

¡Si cambias la extensión de la imagen a .jpeg, se sube correctamente!

También funciona bien si restableces max image size kb al valor predeterminado, aunque parece que la imagen se está renombrando como jpeg de todos modos.

Aquí está la imagen: Dropbox


Edición: También acabo de notar esto bajo la opción max image size kb:

El tamaño máximo de subida de imagen en kB. Esto también debe configurarse en nginx (client_max_body_size) / apache o proxy.

No creo que lo haya hecho; ¿podría ser la causa? (¿hay ejemplos de dónde editar esto?)

1 me gusta

Debería ser posible aumentar ese valor agregando un parámetro upload_size al archivo app.yml de tu sitio. Consulta Change the maximum attachment/upload size para obtener más detalles.

5 Me gusta

He cambiado max image size kb a 500k y se subió. Sin embargo, me pregunto si el mensaje de error que se muestra a los usuarios debería ser simplemente algo como “Error en la carga: la imagen es demasiado grande, por favor redimensiónala e inténtalo de nuevo”.

5 Me gusta

El mensaje de error es realmente malo, aunque me pregunto cuánta gente cambia esa configuración en primer lugar.

5 Me gusta

No puedo recordarlo con certeza ahora, pero según tengo entendido, si reduces esa configuración y una imagen subida es más grande que ese valor, Discourse intentará redimensionar la imagen para reducirla.

Creo que está relacionado con la configuración de calidad de conversión de png a jpg. Fue hace un tiempo, pero creo que Sam trabajó en el redimensionador de imágenes.

En cuanto a quien quiera cambiarlo (o mejor dicho, quiera tamaños de imagen más pequeños), imagino que sería en cualquier sitio donde la calidad de la imagen sea menos importante (es decir, la mayoría de los sitios, excepto los sitios de fotografía).


Una búsqueda rápida arrojó esto, así que parece que el redimensionador aún no se ha implementado (pero estaba seguro de que sí lo estaba :thinking:)

1 me gusta

Esa era también mi comprensión… que existía una reducción de tamaño que procesaba las subidas grandes en el servidor.

EDITAR/ACTUALIZAR:

Ahora se ha descrito bastante bien aquí:

5 Me gusta

@dan ¿puedes encontrar una manera de mostrar un mensaje de error más claro cuando un usuario intenta subir una imagen muy grande? Baja prioridad.

4 Me gusta

He solucionado los dos problemas aquí:

  1. La pipeline de optimización de imágenes convertía PNGs a JPEGs y luego intentaba optimizar los JPEGs resultantes utilizando las operaciones para imágenes PNG.

  2. Los errores de ImageMagick se devolvían al usuario, pero no eran en absoluto útiles (por ejemplo, convert: improper image header...)

8 Me gusta