Non sono sicuro di capire la compressione delle immagini in Discourse. Chiariscimi le idee.
Ho caricato un’immagine di 2392x884 da 214kb e la risoluzione è rimasta la stessa.
Ho caricato un’immagine di 3200x1800 da 1,7mb e la risoluzione è stata ridotta alla soglia composer media optimization image resize dimensions threshold.
Con l’impostazione a 1280 di larghezza, mi aspettavo che tutte le immagini venissero ridotte a quella larghezza. Tuttavia, sembra che la soglia composer media optimization image bytes optimization threshold abbia la precedenza.
La mia prima immagine era inferiore a 524kb, quindi non è stata modificata.
La seconda immagine era superiore a 524kb, quindi è stata modificata.
Se ho capito bene, c’è un modo per ridurre tutti i file caricati a 1280 di larghezza?
Poiché l’argomento è chiamato in modo molto generico, non inizio un nuovo argomento ma cosa significa ottimizzazione lato client in pratica - un sistema operativo del dispositivo deciderà se fare o meno qualcosa? Ma ciò porterà alla situazione in cui un’immagine enorme dovrà essere trasferita a un client prima che la sua dimensione venga ridimensionata in modo decente, o mi sto perdendo completamente ora?
L’ho provato ieri sera prima di pubblicare e sembra essere la chiave.
Ecco il punto:
composer media optimization image bytes optimization threshold
Impostazione 524288 (predefinita) = Immagine di buona qualità, 1920px.
Impostazione 200000 = Immagine degradata, poiché la risoluzione scende da 1920 a 1280.
Quindi stamattina, sul mio desktop, ho preso la stessa immagine (2392px), l’ho ridimensionata a 1280px e anche questa è un po’ degradata. Quindi il degrado non posso evitarlo. È un prodotto della riduzione della risoluzione da 2392px a 1280px. Ha comunque ridotto le dimensioni dell’immagine di quattro volte.
Nota: le foto .HEIC non seguono le stesse regole. Un .HEIC da 4032px è stato ridotto a 2016px. Quindi non so come sia stata applicata quell’impostazione.
Tutto sommato, credo di aver capito, dopo un po’ di tentativi ed errori. Penso che userò le impostazioni predefinite, mi piace molto la maggiore nitidezza di una foto a 1920px rispetto a quella a 1280px.
Spero che questo aiuti qualcun altro.
Modifica: ho ridotto composer media optimization image bytes optimization threshold dal valore predefinito di 524288 a 200000. Ho notato che caricando un file .png di base a 1220px @ 414kb si è ottenuto solo un file di 406kb. Riducendo l’impostazione sopra a 200000, la dimensione del file è stata ridotta da 414kb a 201kb. La risoluzione è rimasta invariata.
Quindi non so cos’altro venga attivato con quell’impostazione, ma chiaramente qualcos’altro per ridurre ulteriormente le dimensioni dell’immagine.
X → composer media optimization image bytes optimization threshold
Y → composer media optimization image resize dimensions threshold
Z → composer media optimization image resize width target
Temo di dover essere stupido per non aver capito bene questa parte guardando le definizioni delle impostazioni:
composer_media_optimization_image_dimensions_resize_threshold: predefinito 1920
Larghezza minima dell’immagine per attivare il ridimensionamento lato client
composer_media_optimization_image_dimensions_resize_target: predefinito 1920
Le immagini più larghe di composer_media_optimization_image_dimensions_resize_threshold verranno ridimensionate a questa larghezza.
Deve essere ≥ a quella soglia.
Questa parte in particolare:
Deve essere ≥ a quella soglia.
Non dovrebbe essere ≤ invece? Non capisco perché dovrebbe ridimensionare a un valore di larghezza superiore alla soglia
Inoltre, nella descrizione della stessa impostazione, la prima impostazione ha il nome sbagliato: