¿Cómo reducir el tamaño del archivo sin perder calidad o resolución?


7

Tengo más de 2,300 imágenes que quiero transferir a mi teléfono, pero en su tamaño original ocupan mucho espacio (6.44 gb) que me gustaría recortar sin sacrificar la calidad o la resolución. Sé que se puede hacer en Linux con algo como pgncrush. Actualmente tengo acceso a un sistema de Windows y todos los archivos están en formato JPEG.

¿Cómo lo hago?


¿Las copias de las imágenes en el teléfono solo se verán en la pantalla del teléfono, o querrá imprimirlas / compartirlas desde el teléfono a alguna otra pantalla?
Edd

2
El término " TANSTAAFL " viene a mi mente aquí. Puede ejecutar todas estas utilidades de Linux en Windows con un poco de trabajo. Pero en general, van a dar solo un pequeño ahorro o bien requerirán una reducción en la resolución o la calidad de la imagen.
Lea mi perfil el

1
¡Eso no es un pato, es un cisne!

1
Siempre debe tener suficiente reputación para responder a su propia pregunta. Esta respuesta probablemente te hará ganar más reputación.
ChrisF

2
Tenga en cuenta que la carga en (su host de imagen favorito aquí) puede verse afectada por la recompresión de la imagen por usted, lo que puede hacer que las comparaciones sean inútiles.
Rowland Shaw

Respuestas:


18

Tamaño de archivo, calidad, resolución: elija dos.

Si tenía imágenes en un formato sin comprimir como BMP, entonces podría hacerlas un poco más pequeñas sin sacrificar ninguna calidad o resolución guardándolas en un formato comprimido que no tenga compresión con pérdida, como PNG-24.

Las imágenes JPEG ya están comprimidas, por lo que, con la calidad y el resultado dados, ya son tan pequeños como pueden ser. Entonces, si desea un tamaño de archivo más pequeño, debe sacrificar la calidad o la resolución.

A medida que va a mostrar la imagen en un teléfono, es posible que pueda sacrificar un poco de calidad sin obtener ninguna diferencia notable. Si las imágenes JPEG se guardan en calidad 100, puede intentar hacer una copia usando, por ejemplo, calidad 80, y ver si eso es lo suficientemente bueno para sus necesidades.

Si la resolución de las imágenes es mayor que la resolución de la pantalla de su teléfono, solo usaría esa resolución adicional si acerca la imagen. En ese caso, reducir la resolución solo limitaría cuánto puede hacer zoom.


a veces comprimirlos o apretarlos puede apretar un poco más los jpgs.
Michael Nielsen

1
@MichaelNielsen: Entonces probablemente sea porque contiene algunos metadatos que no están comprimidos, por lo que guardar la imagen sin metadatos lo haría aún más pequeño.
Guffa

Sería realmente estúpido quitar los metadatos en su propia base de datos.
Michael Nielsen

3
@MichaelNielsen: Sí, pero te estás perdiendo el punto. Los metadatos son la razón por la que hay datos comprimibles en el archivo.
Guffa

Hay otros formatos más allá de JPG que pueden almacenar de manera más eficiente que JPG, por lo que al convertir a uno de ellos, puede lograr una mejor compresión sin pérdida de calidad percibida. Más información en mi respuesta a continuación photo.stackexchange.com/a/79086/4272
Chris Wuestefeld

5

Comencemos con una noción: los compresores pueden reducir el tamaño de algo (como un archivo de texto) al procesarlo y representar la misma información usando menos símbolos. Es la forma en que Zip reduce el tamaño de un archivo de texto. Esta es una compresión sin pérdidas.

Las imágenes y el audio (y, por lo tanto, el video) utilizan una gran cantidad de información: por ejemplo, una imagen de 5 megapíxeles, en un formato que no comprime nada (como TIFF) tomaría 5 megabytes x 3 colores * RGB) = 15 MB de espacio.

Para reducir el tamaño del archivo, el formato JPEG hace que pierda algo de información de la imagen: ya sea calidad, colores, etc. Es por eso que puede abrir un JPEG en algún programa de edición de fotos (Photoshop, Gimp, etc.) y luego guardarlo con Menos calidad: utilizará menos información para representar su imagen, con un tamaño de archivo más pequeño, pero perderá algo de calidad. Si usted (o cualquier persona) podrá notar que la baja calidad es un punto importante al elegir "cuánta compresión" desea.

Entonces: en general, para fines prácticos, perderá mucha calidad para reducir el tamaño de una imagen JPEG, porque ya está comprimida.

Pero quieres usar eso en tu teléfono celular, ¿verdad?

No dijiste qué teléfono celular tienes. Supongamos que tienes un Samsung galaxy s3 . Puedes ver sus especificaciones: la resolución de la pantalla es de 1280x720 píxeles.

Entonces, cuando ve una imagen en ella, no importa el tamaño original de la imagen: podrá ver 1280x720 píxeles, porque esa es la cantidad máxima de píxeles que la celda podrá mostrar.

Si toma todas sus imágenes, las redimensiona a 1280x720 píxeles y las abre en su teléfono, las verá de la misma manera que las vería con la resolución original. Perderá la "resolución" de la imagen original, pero de todos modos es algo que no podrá ver en su teléfono ...

Cómo lo haces en Windows : usa cualquier programa que te guste para editar imágenes: Photoshop, Gimp, IrfanView ... pero como estás hablando de hacerlo en una gran cantidad de archivos, probablemente estés pensando en ImageMagick o un programa similar, que puede realizar la misma operación en una gran cantidad de archivos.

Editar: para hacerlo con Imagemagick:

1 - copie todas sus imágenes a una nueva carpeta (ej .: Temp1), para evitar perder los originales

2: cree una nueva carpeta donde se verán sus imágenes después de cambiar su tamaño (ej .: Temp2)

3 - abra una cmdventana, vaya al directorio que tiene las imágenes copiadas (Temp1)

4 - tipo:

mogrify -path full_path_to_Temp2 -resize 1280x720 * .jpg


Esto es lo que estaba buscando. También adivinaste bien mi teléfono, es un S3. Estoy descargando imagemagick ahora mismo. ¿Cuál sería el comando para cambiar el tamaño de las imágenes de todos los archivos en una carpeta a 1280x720?
salvado

En wordpress, uso un complemento para cambiar automáticamente el tamaño de las imágenes cargadas. Utiliza una utilidad del lado del servidor llamada littleutils ( sourceforge.net/projects/littleutils ). Quería usar algo así. Lo que me hace creer que es posible comprimir jpeg más sin perder mucha calidad o reducir la resolución. Actualmente, la mayoría de mis imágenes son 2305x3072 o 2592X1944.
salvado el

1
Encontré esto en linux manpagez.com/man/1/opt-jpg
bran

2
oh, ¿entonces ESTÁS dispuesto a sacrificar la resolución?
Digital Lightcraft

44
Si bien estoy de acuerdo con todo lo que se dice aquí, me gustaría señalar que, si bien muchas personas muestran fotos en su teléfono, también les gusta hacer zoom para mostrar partes de la imagen con más detalle. Si hace esto pero ha disminuido la resolución de la imagen a la resolución de la pantalla del teléfono, notará la diferencia ya que ahora muestra una región más pequeña en la resolución del teléfono, pero ya ha perdido esos píxeles. Solo un pensamiento.
Estoy tan confundido

2

Puede obtener una optimización sin pérdidas (basada en la optimización de las tablas de Huffman). La utilidad jpegoptim proporciona este algoritmo.

Instálelo con (en debian):

apt-get install jpegoptim

Para ejecutar una simulación (modo sin acción):

jpegoptim -n -p dsc07844.jpg

devoluciones:

dsc07844.jpg 3872x2592 24bit Exif  [OK] 3057132 --> 2518805 bytes (17.61%), optimized.

Para optimizar:

jpegoptim -p dsc07844.jpg

Conserva los metadatos exif.


2

Ah, bueno, te respondiste a ti mismo, pero cambiaste tus requisitos. "Sin pérdida de calidad" y "sin pérdida de calidad a simple vista" son muy diferentes con las imágenes.

Además, PNGcrush y opt-jpg funcionan de manera completamente diferente; solo notando esto porque mencionaste PNGcrush en tu OP. PNGcrush solo optimiza los metadatos sobre la imagen, no la imagen en sí. Es por eso que generalmente solo ganas 1-2%.

Francamente, en cuanto a las dos imágenes en su respuesta, se ven completamente diferentes para mí. La imagen optimizada está mucho más borrosa y tiene menos profundidad de negro. Como es un JPEG, esto probablemente se hizo condensando la paleta, lo que hará que la imagen se vea ... diferente.

La respuesta a su pregunta original es que no puede reducir el tamaño del archivo de manera significativa sin afectar algún tipo de calidad (a excepción del ahorro de 1-2% mencionado anteriormente por metadatos o compresión de etiquetas) , es decir , eliminando datos EXIF, etc., dependiendo de El formato del archivo (RAW, TIFF, JPEG).

Para reducir el tamaño del archivo en cualquier medida real, debe perder calidad o resolución o ambas. Si ese no fuera el caso, el fotógrafo no se molestaría en procesar en RAW.


1

Dada una resolución y un nivel de calidad, existen varios otros formatos de archivo de imagen que pueden proporcionar el equivalente, pero almacenan los datos de manera más compacta que el antiguo JPEG estándar.

Algunas opciones incluyen

  • JPEG2000 , identificado por la extensión .jp2, es un formato algo más antiguo que nunca se hizo popular. Utiliza transformaciones wavelet en lugar de DCT de jpeg (transformada discreta del coseno) que da como resultado artefactos que son menos obvios, lo que permite una mayor compresión con una calidad percibida comparable. Reclaman una ventaja del 20%. https://en.wikipedia.org/wiki/JPEG_2000

  • El WebP de Google utiliza algoritmos más avanzados (si lo entiendo correctamente, es análogo a la mejor compresión H.265 de hoy para video en comparación con MPEG), que afirman que puede ahorrar un 40% con una calidad equivalente. http://www.cnet.com/news/google-offers-jpeg-alternative-for-faster-web/# !

  • BPG (para "mejores gráficos portátiles") es un nuevo esfuerzo de código abierto. Parece ser similar en enfoque a WebP, con ventajas adicionales como una mejor profundidad de bits y rango dinámico, pero a partir de hoy tiene menos compatibilidad con varios software. http://bellard.org/bpg/

Si desea los detalles esenciales sobre cómo se comparan estos y otros, puede ver cuadros y gráficos aquí: https://people.mozilla.org/~josh/lossy_compressed_image_study_july_2014/


0

Debe "comprimir" la carpeta. Hay varias formas de hacerlo, la clásica es "comprimirlas".

En Windows (XP en adelante), haga clic derecho en la carpeta que contiene, haga clic en "enviar a" y luego en "Carpeta comprimida"

Esto debería reducir el tamaño de la carpeta y guardarlo como un archivo .zip.

SIN EMBARGO: los archivos JPEG ya están comprimidos en su propia codificación, por lo que el archivo comprimido final puede no ser muy diferente.


Si los comprimo, no podré verlos en mi teléfono donde los voy a transferir. Sé que hay forma de hacerlo individualmente. Necesito una manera de hacerlo de una vez. Preferiblemente debajo de ventanas.
salvado el

Ok, ya veo, hmm, si deben mantenerse como jpg, sin sacrificar la calidad o la resolución, no creo que pueda hacerlo. Si está dispuesto a reducir la calidad LIGERAMENTE para que la diferencia no sea obvia, entonces podría ahorrar fácilmente una buena cantidad de tamaño.
Digital Lightcraft

0

Puede usar un programa llamado Moo0 Image Sizer , que permite volver a clasificar muchas imágenes a la vez (a partir del 15 de diciembre de 2012, los formatos disponibles son jpg, png, bmp y gif).

El programa es gratuito para uso no comercial.


Hola, E. Fisher, bienvenido al sitio. Sería útil, creo, dar cuerpo a su respuesta con un poco más, y confirmado, detalle.
John Cavan

0

He encontrado la respuesta que estaba buscando. La respuesta es opt-jpg para Linux. No lo encontré en el repositorio de ubuntu. Por lo tanto, debe descargar la fuente de littleutils ( http://sourceforge.net/projects/littleutils/ ) que incluye opt-jpg.

Para instalar desde la fuente. Descargue el Tar con wget y:

tar jxvf littleutils-1.0.27.tar.bz2 && cd littleutils-1.0.24

...

./configure --prefix=/usr && make && make install && make install-extra

Tienes que ser root para sudo su

Usé una imagen de pato por ejemplo. El archivo no optimizado es 1.1M después de la optimización de sus 991kb sin perder ninguna calidad de imagen (a simple vista) o cambiar la resolución de la imagen. Puede que no parezca una gran diferencia (una reducción de 108 kb), pero con más de 2300 imágenes y un tamaño promedio de 6.44 gb con la misma reducción de tamaño puede agregar mucho espacio. ingrese la descripción de la imagen aquí

Puedes ver la imagen original de Duck cargada en flickr: ingrese la descripción de la imagen aquí

Y el optimizado: ingrese la descripción de la imagen aquí

¿Puede el ojo desnudo notar la diferencia?

En cuanto a la cantidad de espacio que realmente ahorré. Tendrás que esperar un poco porque tendré que dejar que se ejecute cuando no esté usando la compilación. Esto llevará un tiempo y recordaré informar de nuevo.


Solo para actualizar a las personas sobre cuánto espacio ahorré. Me llevó unos 25 minutos terminar y ahorré unos 200 MB de tamaño.
salvado

1
Entonces, ¿un ahorro del 3% en general?
Lea mi perfil el

2
Como comentario, sabes que es un cisne, y no un pato, ¿verdad?
Rowland Shaw

@mattdm Sí, no mucho, pero ahora sé que se puede hacer y no realmente un "TANSTAAFL" :)
salvado

1
A simple vista no puede notar la diferencia cuando reduce la resolución para que coincida con el teléfono, ni si bajara la calidad de 12 a 8. Esas dos cosas juntas le ahorrarían% 75, no 3%, del tamaño de su archivo , llevando toda la colección a un concierto, sin forma de saberlo sin acercarse. (No estoy seguro de qué configuración de calidad se guardó originalmente, pero generalmente puede obtener una imagen de tamaño HD de hasta 250 kb y aún así lucir genial).
wedstrom


0

"Image Resizer for Windows" es una gran utilidad gratuita en menos de 1 MB para usuarios de Windows. Todas las imágenes de 5 MB o 10 MB se pueden descifrar a menos de 200 kb, con casi la misma claridad. El problema es: estas imágenes de 10 MB tienen una resolución de 4000 X 3000, pero su teléfono o computadora es solo un tercio de eso, lo que lo hace sentir casi igual. Por lo tanto, a menos que imprima alguno de estos, le recomendaré comprimir sus imágenes con esta herramienta realmente simple. Simplemente seleccione todos los archivos, haga clic derecho y diga Cambiar tamaño. Convertirá 100 imágenes en menos de un minuto.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.