Errore di caricamento immagine durante l'uso del ridimensionatore

Se provate a caricare un PNG di grandi dimensioni che deve essere ridimensionato per rispettare il limite max image size kb, si verifica un errore:

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

Se cambiate l’estensione dell’immagine in .jpeg, il caricamento avviene senza problemi!

Funziona correttamente anche se reimpostate max image size kb al valore predefinito, tuttavia sembra che l’immagine venga rinominata come jpeg in ogni caso.

Ecco l’immagine: Dropbox


Modifica: Ho appena notato anche questo sotto l’opzione max image size kb:

La dimensione massima di caricamento dell’immagine in kB. Questa deve essere configurata anche in nginx (client_max_body_size) / Apache o nel proxy.

Non credo di averlo fatto: potrebbe essere la causa del problema? (avete esempi su dove modificare questa impostazione?)

1 Mi Piace

Dovrebbe essere possibile aumentare questo valore aggiungendo un parametro upload_size al file app.yml del tuo sito. Consulta Change the maximum attachment/upload size per i dettagli.

5 Mi Piace

Ho modificato max image size kb a 500k e il caricamento è andato a buon fine. Mi chiedo però se il messaggio di errore mostrato agli utenti dovrebbe essere semplicemente qualcosa come: “Caricamento fallito: l’immagine è troppo grande, ridimensionala e riprova”?

5 Mi Piace

Il messaggio di errore è davvero pessimo, anche se mi chiedo quante persone modifichino quella impostazione in primo luogo?

5 Mi Piace

Non riesco a ricordare con certezza, ma per quanto mi risulta (IIRC), se abbassi quella impostazione e un’immagine caricata è più grande di quel valore, Discourse proverà a ridimensionarla per portarla sotto la soglia.

Penso che sia legata all’impostazione qualità da png a jpg? È passato un po’ di tempo, ma credo che Sam abbia lavorato sul ridimensionatore di immagini.

Per quanto riguarda chi volesse modificarla (o meglio, ottenere dimensioni di immagine più piccole), immagino che si applichi a qualsiasi sito in cui la qualità dell’immagine è meno importante (quindi la maggior parte dei siti, tranne quelli dedicati alla fotografia).


Una rapida ricerca ha restituito questo - quindi sembra che il ridimensionatore non sia ancora stato implementato (anche se ero certo che lo fosse :thinking:)

1 Mi Piace

Anche io pensavo così… cioè che fosse in atto un ridimensionamento che elabora i caricamenti di grandi dimensioni sul server.

MODIFICA/AGGIORNAMENTO:

È stato descritto piuttosto bene qui ora:

5 Mi Piace

@dan puoi trovare un modo per mostrare un messaggio di errore migliore quando un utente tenta di caricare un’immagine molto grande? Bassa priorità.

4 Mi Piace

Ho risolto i due problemi qui:

  1. La pipeline di ottimizzazione delle immagini convertiva i PNG in JPEG e poi tentava di ottimizzare i JPEG risultanti utilizzando le operazioni previste per le immagini PNG.

  2. Gli errori di ImageMagick venivano restituiti all’utente, ma non erano affatto utili (ad esempio, convert: improper image header...)

8 Mi Piace