¿Cómo puedo comprimir imágenes?

Respuestas:

21

Yo uso Trimage super simple de usar.

solo agrega una imagen y se comprime para instalar:

sudo apt-get install trimage

ingrese la descripción de la imagen aquí

Mohamed Slama
fuente
2
No veo ninguna configuración mediante la cual pueda definir qué tan comprimido me gustaría, el tamaño del archivo, etc.
Rico
46

La palabra "compresión" parece estar mal interpretada en esta pregunta, pero aún es válida dependiendo del contexto en el que desea ver esto.

El paisaje

Reconozcamos que los diseñadores web, los desarrolladores web y / o los maestros web necesitan "comprimir" nuestros archivos de imagen para que sean lo suficientemente "livianos" para cargarlos rápidamente en nuestro alojamiento si estamos trabajando directamente en un entorno de producción real. Lo que no afectará si estuviéramos trabajando en un entorno de producción de prueba local.

Muchas de las respuestas parecen referirse a otras cosas, principalmente causadas por, probablemente, que no se han enfrentado a ese escenario. Por eso empiezo a explicar esto.

Asi que. Comprendamos lo que la respuesta necesita resolver:

  1. La imagen DEBE ser ligera
  2. La imagen DEBE estar "comprimida" para perder el tamaño del archivo, pero no "rezised", según lo referido por otro usuario que señaló un duplicado en esta pregunta .
  3. Las imágenes deben comprimirse por lotes, preferiblemente a través de una GUI.

Imagen ligera

Primero, comprendamos qué debe ser una "imagen ligera".

Las imágenes de alta definición, con resoluciones superiores a 1024 px, pueden tener un gran tamaño de archivo. Proporciono un ejemplo en esta captura de pantalla:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

En la ventana de propiedades del archivo, podemos ver que se trata de un archivo de 9,5 MB, que retrasará mucho la carga y retrasará mucho el procesamiento en pantalla cuando se publique en un sitio web.

Sin embargo, el tamaño de la imagen y la resolución de la cuadrícula son realmente útiles para una impresión de alta definición. Entonces ese es un escenario diferente que no cubriré en esta explicación.

Entonces, ¿cómo puedo usar esta imagen en un sitio web, sin esperar años para cargar y esperar otros años para mostrarla en mi sitio web?

El archivo debe estar comprimido.

Y cuando hablamos de "compresión" necesitamos cambiar explícitamente su calidad para que sea utilizable para el caso que enfrentamos.

Entonces, dejemos el siguiente en una terminal:

convert seminario-tabloide.png test.jpg

¡Esto va a convertir el formato PNG de alta definición en un formato JPG "comprimido", que en sí mismo es un archivo más pequeño! Va de 9,5 MB a 2,4 MB.

ingrese la descripción de la imagen aquí

Pero grande?

Pero, 2.4 MB es aún un gran tamaño de archivo. Ahora juguemos con otros comandos de conversión de ImageMagick para crear archivos de menor tamaño:

convert test.jpg -quality 50% test-50p.jpg

Esto es lo que debemos hacer para "comprimir" una imagen. Esto reducirá la calidad de la imagen en un 50% y ofrecerá un tamaño de archivo de 938.4 KB <=== (Nota: KILOBITOS, ni siquiera un Megabyte).

Podemos ir más allá y crear un tamaño de archivo más pequeño ajustando el porcentaje en el mismo comando a través de:

convert test.jpg -quality 30% test-30p.jpg

Tenga en cuenta que en este ejemplo estamos reduciendo la calidad del archivo, no las dimensiones de la imagen. Lo que dará como resultado un archivo comprimido que no se ve afectado visualmente cuando se procesa en la pantalla, pero verá los artefactos al imprimir en un tamaño de papel grande (más grande que una letra).

Redimensionando + Comprimiendo = ¡Super Genial!

Ahora. Podemos hacer algo diferente. De hecho, hay un par de cosas: primero podemos cambiar el tamaño de las imágenes y aplicar compresión después de eso, lo que dará como resultado un tamaño de archivo más pequeño que el original y ofrecerá una imagen útil para renderizar en pantalla, no tan buena para imprimir, pero parece que necesita mostrarlo en la pantalla y no en un banner impreso, ¿verdad?

Entonces hagamos esto:

convert seminario-tabloide.png -resize 1024x test-1024x.jpg

Con esta instrucción, le pedimos que cambie el tamaño de la imagen para que tenga 1024 píxeles de ancho por cualquier cantidad de píxeles necesarios para no perder la relación de aspecto.

Ahora ... ¿adivina qué?

El tamaño del archivo se redujo de 9.5 MB a ... (música de suspenso con congas, por favor) 433.7 KILOBYTES

Si deseamos comprimir al máximo un archivo comprimido máximo como este, enfrentaremos algunos datos generales insertados en el archivo y resultará en un tamaño de archivo más grande. Así que no te sugiero que lo intentes, pero si esperas que haga el ejemplo, está bien ... ¡Aquí vamos!

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg

Y pasamos de 433.7 KB a 176.2 KB en un solo comando. Este ejemplo fue exitoso, sin embargo, no espere que ningún ejercicio resulte en tamaños de archivo más pequeños. Pero puede divertirse mucho al ejecutar este tipo de ejercicios.

Proceso por lotes

Oh! Pero casi olvido una de las necesidades: aplicar este proceso a muchas imágenes con facilidad.

Para tal cosa podemos hacerlo con dos procesos.

La terminal

Esto es más rápido y más fácil. Entonces, digamos al terminal que necesitamos ejecutar la misma instrucción en todos los archivos en un directorio, después de lo cual explicaré otras instrucciones.

Convierta todo a 1024px (puede usar cualquier cantidad de píxeles)

for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;

Aquí le pedimos al comando que ejecute la misma instrucción para todos los archivos en un directorio, aplique la transformación y suelte una copia con un nombre diferente para facilitar la selección.

Reduzca la calidad por porcentaje (use cualquier porcentaje que desee) a todas las imágenes en un directorio:

for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;

Aquí pedimos que las imágenes redimensionadas se reduzcan en calidad para reducir su tamaño de archivo.

Puedes jugar con estos comandos y ver tus resultados. Después de un par de horas divirtiéndote, serás un experto.

Nautilus Script

El 20 de abril de 2015 enfrenté una situación como la pregunta original, así que tuve que investigar un poco y pedir ayuda sobre una pregunta. Es por eso que ahora sé mucho de esto. No creas que nací con este conocimiento, hombre.

Si no está acostumbrado a las terminales y / o desea usar una GUI para simplemente elegir sus grupos de archivos y aplicar las transformaciones, puede crear su propio Script de Acciones Nautilus para simplemente hacer clic derecho en el grupo de archivos y elegir Una opción del menú contextual.

Para obtener instrucciones sobre cómo hacerlo, lea la pregunta, la respuesta y los comentarios aquí: ¿Cómo procesar por lotes las imágenes JPG para cambiar su calidad con Nautilus-Actions?

¡Buena suerte!

Geppettvs D'Constanzo
fuente
1
Esta es la respuesta "enséñame a pescar". convertLas habilidades de la línea de comandos de ImageMagick son excelentes.
Charney Kaye
¡Sólido! He utilizado el Sublime Text editor de texto en el modo multi-cursor para cambiar rápidamente un montón de comandos a la vez para una compresión "lote" de un montón de fotos. ¡Acabo de usar el convert photo.jpg -quality 70% photo_compressed.jpgformato de comando y funcionó muy bien! Incluso establecer la compresión en solo el 70% de la calidad original redujo el tamaño de la foto a ~ 37% del original, ya que el efecto se magnifica al estar en los ejes x e y.
Gabriel Staples
Fantástica explicación de conceptos a menudo mal entendidos. Para completar, permítanme agregar que para el procesamiento por lotes también puede usar el mogrify de ImageMagick en lugar de convertir en el que hago una carpeta para guardar los resultados y luego procesar en esa carpeta que también mantiene las cosas organizadas. Por ejemplomogrify -resize 1600 -path dir_name -format JPG -quality 90 *.tif
Dennis
0

Si se refiere a imágenes jpeg, la compresión de facto no es posible. Porque jpeg es, por definición, un formato de archivo comprimido (todo el ruido y los píxeles inútiles ya se han eliminado). Puede comprimirlos bien, pero el tamaño total seguirá siendo el mismo. El único algoritmo de compresión avanzado que conozco para jpegs es zipx. Pero zipx es propiedad de Winzip y garantiza un máximo. tamaño reducido en un 30% (en modo de archivo zipx).

Para mostrar sus imágenes en la web, primero debe cambiar su tamaño (menos de 1 MB por cada una) y, opcionalmente, convertirlas al formato de archivo png. PNG (= gráficos de red portátiles) está especialmente optimizado para una transferencia web más rápida y una visualización más rápida. Los usuarios avanzados incluso pueden convertir esas imágenes a formato webp (formato de Google para imágenes, algoritmo de carga más rápido).

Puede convertir imágenes por lotes con XnConvert, luego cambiar el tamaño de sus imágenes por lotes con XnView. Descargue el paquete deb desde aquí: http://www.xnview.com/de/xnviewmp/#downloads , luego haga clic derecho sobre él y ábralo con el software Gnome.

Si no le importa la velocidad de carga de la red, pero le importa la calidad, debe mantener sus imágenes intactas y crear una biblioteca digital para ellas. Tal vez subirlos a un servidor público (Yahoo, Google, etc.).

laúd ipse
fuente
3
Es posible que desee mencionar las diversas opciones para la compresión / calidad de JPEG; es bastante posible reducir el tamaño de archivo de una imagen jpeg aumentando su compresión (y, por lo tanto, reduciendo su calidad).
Nick Weinberg
1
Mi comprensión de la compresión significa eliminar píxeles innecesarios y mantener la misma calidad. Reducir la calidad no es compresión, es solo reducir o reducir el muestreo. La compresión sin pérdida es posible mediante el uso del formato zipx que funciona muy bien con fotos en ráfaga. Crea algún tipo de pila sobreimpuesta / sobreapilada de fotos similares en las que todos los píxeles dobles se aplanan en una capa separada, algo similar a un archivo .css en una página web. Los píxeles repetidos se definen como una entidad separada dentro del archivo.
ipse lute