Queremos limitar las subidas de imágenes a 1,2 MB, pero evitar cualquier tipo de recompresión cuando la imagen cumpla con ese límite.
Preferiríamos que, si la imagen es más grande, se le informe al usuario y no se le permita subirla. Sin embargo, no he encontrado cómo hacer eso.
Cuando alguien sube una imagen un poco más pesada, el sistema la redimensiona y recomprime de forma agresiva, y los usuarios se quejan de que el foro ha arruinado su foto (menos detalle, gradación de color, etc.).
Con la adición de las opciones del compositor de imágenes (recientemente), las cosas han empeorado. Incluso las imágenes que pesan menos de 1,2 MB son recomprimidas.
Queremos evitar cualquier tipo de intervención en la imagen del usuario (es su responsabilidad ajustar la imagen a su gusto dentro de las limitaciones de peso y tamaño). Al menos con las imágenes que cumplen con las limitaciones dadas.
¿Cómo configurar mejor las opciones para obtener este comportamiento?
Creo que no podemos evitar la recompresión en las imágenes que no cumplen con los límites, pero al menos queremos evitarla en las que sí cumplen y controlar la compresión de las que los exceden.
El foro tiende a comprimirlas demasiado y dar resultados como 200 KB y 900 píxeles en el lado más largo.
mmm… queremos las imágenes en nuestro servidor, ya que no tenemos control sobre otros sitios donde las imágenes podrían perderse.
He asumido que no podremos desactivar completamente el procesamiento de imágenes.
Nos basta con que el sistema no modifique las imágenes que cumplen los límites (1,2 MB de tamaño de archivo y 2048 píxeles en el lado más largo) y que podamos ajustar un poco la recompresión para aquellas que superen esos límites.
Creo que he logrado el primer objetivo: he establecido el límite de tamaño de archivo en 1230 KB y el umbral en el compositor de imágenes al mismo valor en bytes.
Ahora parece que las imágenes con un tamaño inferior a ese no se recomprimen (como ocurría en versiones anteriores; parece que el compositor de imágenes se introdujo recientemente).
Sin embargo, cuando intentas subir una imagen de, por ejemplo, 2100 píxeles y 3 MB, obtienes resultados extraños. A veces se redimensiona a unos 900 píxeles y 200 KB, y otras veces a 1024 píxeles y 500 KB… La imagen pierde por completo sus detalles y su gradación de color.
He configurado los límites del compositor de imágenes a 1920 píxeles y la calidad de compresión JPEG al 90, por lo que esperaba que se recomprimiera a ese tamaño (he probado con imágenes que se pueden comprimir fácilmente con calidad 90 y 1920 píxeles dentro del límite de 1,2 MB). Pero el sistema sigue comprimiéndolas en exceso.
Disculpa la demora. No me había dado cuenta de la respuesta.
Sí, como expliqué anteriormente, hemos establecido un límite de 1,2 MB y un límite de resolución de 4 MP.
Cuando la imagen no cumple con ese límite, el sistema la comprime fuertemente, a veces con resultados desastrosos como 600 píxeles o 1000 píxeles de ancho para una imagen que se subió con 1920 o 2048 píxeles de ancho.
La pérdida de calidad es más que evidente para un ojo entrenado: texturas faltantes, halos, mala gradación de color…
Con las recientes actualizaciones, incluso las imágenes que cumplen los límites reciben una “mejora” del sistema y se comprimen con pérdidas de calidad.
Hemos ajustado la “calidad jpg original de recompresión” y la hemos establecido en 100% con la esperanza de evitar la recompresión. Parece funcionar, pero no estoy seguro de si de todos modos se produce una recompresión (pero al menos no hay pérdida de calidad visible).
Necesitas ajustar el umbral de optimización de bytes de imagen de composer media optimization para deshabilitar la optimización de tamaño del cliente de imágenes por debajo de ese tamaño. El valor predeterminado se aplica a imágenes de más de 500 KB, por lo que querrás aumentar esa configuración a 1,2 MB.