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

Tengo más de 2300 imágenes que quiero transferir a mi teléfono, pero en su tamaño original ocupan mucho espacio (6,44 gb). Me gustaría recortarlas sin sacrificar la calidad ni 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?
Solo en la pantalla del teléfono.
El término " TANSTAAFL " viene a la mente aquí. Puede ejecutar todas estas utilidades de Linux en Windows con un poco de trabajo. Pero, en general, solo darán un pequeño ahorro o requerirán una reducción en la resolución o la calidad de la imagen.
@Bran En cuyo caso, sugiero reducir la resolución, como lo sugiere woliveirajr . Veo pocas razones para tener una resolución de imagen mayor que la de la pantalla del teléfono.
¡Eso no es un pato, es un cisne!
No tenía suficientes "puntos" o algo así para responder a mi propia pregunta. Lo intentare otra vez. @SteveKemp sí, probablemente. :)
Siempre debe tener suficiente reputación para responder a su propia pregunta. Esta respuesta probablemente te hará ganar más reputación.
Publicaste la misma imagen dos veces. No se ve ninguna diferencia, ya que los archivos de imagen son completamente idénticos hasta el último bit. Si publica una imagen original y comprimida real, podemos compararlas.
@Guffa No publiqué la misma imagen dos veces... ¿por qué haría eso? Puedes descargar las imágenes por separado a tu ordenador y comprobar los tamaños. i.stack.imgur.com/Lz2Ii.jpg i.stack.imgur.com/VqHjK.jpg Alternativamente, puede compilar e instalar la herramienta que mencioné en mi respuesta y probarla usted mismo.
No sé por qué publicaste la misma imagen dos veces. Descargué las imágenes y comparé el contenido del archivo, y eran completamente idénticos. Descargué las imágenes a las que vinculaste ahora, y también son completamente idénticas.
Según el formato original, es posible que pueda elegir un mejor algoritmo de compresión sin pérdidas. O más probablemente no.
Tenga en cuenta que la carga en (su host de imágenes favorito aquí) puede verse afectada por la recompresión de la imagen por usted, lo que puede hacer que las comparaciones sean inútiles.
Tengo entendido que flickr no lo vuelve a comprimir ni lo convierte, pero otros sitios, como imgur, sí lo hacen.

Respuestas (10)

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

Si tuviera imágenes en un formato sin comprimir como BMP, podría hacerlas un poco más pequeñas sin sacrificar la calidad o la resolución guardándolas en un formato comprimido que no tenga pérdida de compresión, 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ñas como pueden ser. Entonces, si desea un tamaño de archivo más pequeño, debe sacrificar la calidad o la resolución.

Como 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 con 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 más alta que la resolución de la pantalla de su teléfono, solo usaría esa resolución adicional si hace zoom en la imagen. En ese caso, reducir la resolución solo limitaría cuánto puede hacer zoom.

a veces, comprimirlos o rarearlos puede exprimir un poco más los jpg.
@MichaelNielsen: Entonces probablemente se deba a que contiene algunos metadatos que no están comprimidos, por lo que guardar la imagen sin metadatos la haría aún más pequeña.
sería realmente estúpido eliminar los metadatos en su propia base de datos.
@MichaelNielsen: Sí, pero te estás perdiendo el punto. Los metadatos son la razón por la que hay datos comprimibles en el archivo.
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 esos, 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

Comencemos con una noción: los compresores pueden reducir el tamaño de algo (como un archivo de texto) procesándolo y representando la misma información usando menos símbolos. Es la forma en que Zip hace que un archivo de texto sea más pequeño. Esta es la compresión sin pérdidas.

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

Para reducir el tamaño del archivo, el formato JPEG hace que pierdas información de la imagen: ya sea calidad, colores, etc. Por eso puedes abrir un archivo 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 la baja calidad, es un punto importante al elegir "cuánta compresión" desea.

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

Pero quieres usar eso en tu celular, ¿verdad?

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

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

Si toma todas sus fotos, las cambia de tamaño 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ás "resolución" de la imagen original, pero es algo que no podrías ver en tu teléfono de todos modos...

Cómo lo haces en Windows : usa cualquier programa que te guste que sea capaz de 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 pueda 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 estarán sus imágenes después de cambiar el tamaño (por ejemplo: Temp2)

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

4 - tipo:

mogrify -ruta ruta_completa_a_Temp2 -redimensionar 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?
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.
Encontré esto en linux manpagez.com/man/1/opt-jpg
oh, ¿entonces ESTÁS dispuesto a sacrificar la resolución?
Preferiblemente no. Voy a comparar y ver si hace mucha diferencia. Estoy buscando en la herramienta opt-jpg que vinculé, que comprime imágenes sin sacrificar la resolución (la usé en mi blog de wordpress y comprime automáticamente jpeg en el lado del servidor). pero no lo he probado de forma independiente, así que podría darle una oportunidad.
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 reducido la resolución de su imagen solo 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.
@ AK4749 estoy 100% de acuerdo con su observación, y tenía dudas sobre si debía incluir esta observación cuando la estaba respondiendo o no... por favor, edítela si lo desea.

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

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 noté esto porque mencionaste PNGcrush en tu OP. PNGcrush solo optimiza los metadatos de la imagen, no la imagen en sí. Esta es la razón por la que normalmente solo gana un 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 descolorida y tiene menos profundidad de negro. Dado que 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 significativamente el tamaño del archivo sin afectar algún tipo de calidad (excepto por el ahorro del 1-2% mencionado anteriormente por metadatos o compresión de etiquetas) , es decir , eliminando datos EXIF, etcétera, dependiendo de el formato del archivo (RAW, TIFF, JPEG).

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

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

Algunas opciones incluyen

  • JPEG2000 , identificado por la extensión .jp2, es un formato algo más antiguo que nunca se hizo popular. Utiliza transformadas wavelet en lugar de DCT (transformada de coseno discreta) de jpeg, lo 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

  • WebP de Google utiliza algoritmos más avanzados (si entiendo correctamente, es similar a la mejor compresión H.265 actual 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 (por "mejores gráficos portátiles") es un nuevo esfuerzo de código abierto. Parece tener un enfoque similar a WebP, con ventajas adicionales como mejor profundidad de bits y rango dinámico, pero a partir de hoy tiene menos compatibilidad con varios programas. http://bellard.org/bpg/

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

Necesitas "comprimir" la carpeta. Hay varias formas de hacer esto, la clásica es "comprimirlas".

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

Esto debería reducir el tamaño de la carpeta y guardarla 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 transferiré. Sé que hay manera de hacerlo individualmente. Necesito una manera de hacerlo de una vez. Preferiblemente debajo de las ventanas.
Ok, ya veo, hmm, si deben mantenerse como jpg, sin sacrificar la calidad o la resolución, no creo que puedas hacerlo. Si está dispuesto a bajar la calidad LIGERAMENTE para que la diferencia no sea obvia, entonces podría ahorrar fácilmente una buena cantidad de tamaño.

Puede utilizar un programa llamado Moo0 Image Sizer , que permite cambiar el tamaño de muchas imágenes a la vez (desde el 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, desarrollar su respuesta con más detalles y confirmados.

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

Para instalar desde la fuente. Descarga 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 quesudo su

Usé una imagen de pato, por ejemplo. El archivo no optimizado es de 1,1 M después de la optimización, sus 991 kb sin perder calidad de imagen (a simple vista) ni 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 de 6,44 gb en promedio con la misma reducción de tamaño puede sumar mucho espacio.ingrese la descripción de la imagen aquí

Puedes ver la imagen original del Pato subida a 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 cuánto espacio realmente ahorré. Tendrá que esperar un tiempo porque tendré que dejar que se ejecute cuando no esté usando el borrador. Esto tomará un tiempo y recordaré informar.

Solo para actualizar a las personas sobre cuánto espacio ahorré. Tardó unos 25 minutos en terminar y ahorré unos ~200 MB de tamaño.
Entonces, ¿un ahorro del 3% en general?
Aparte, sabes que es un cisne y no un pato, ¿verdad?
@mattdm Sí, no mucho, pero ahora sé que se puede hacer y no es realmente un "TANSTAAFL" :)
@RowlandShaw Sí, me doy cuenta, pero me da pereza cambiarlo :)
Bueno, no estoy seguro de llamar al 3% "almuerzo". Tal vez más de un refrigerio muy ligero. :)
A simple vista no se puede notar la diferencia cuando reduce la resolución para que coincida con el teléfono, ni si baja la calidad de 12 a 8. Esas dos cosas juntas le ahorrarían %75, no 3%, del tamaño de su archivo , reuniendo toda la colección en un concierto, sin forma de saberlo sin acercar el zoom. (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 más o menos y aún verse genial).
Lo primero que debe hacer al comparar la calidad es cuantificar lo que quiere decir y luego medir, medir y medir. Buena discusión aquí sobre el control deslizante Lr JPEG: regex.info/blog/lightroom-goodies/jpeg-quality

en Windows utilizo un programa llamado RIOT (herramienta de optimización radical de imágenes). Hasta ahora es lo mejor que conozco.

http://luci.criosweb.ro/riot/

"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 reducir a menos de 200 kb, casi con la misma claridad. El problema es que 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 hace que se sienta casi igual. Entonces, a menos que vaya a imprimir alguno de estos, le recomendaré comprimir sus imágenes con esta herramienta realmente simple. Simplemente seleccione todos los archivos, haga clic con el botón derecho y diga Redimensionar. Convertirá 100 imágenes en menos de un minuto.