¿Cómo recortar un JPG sin volver a comprimir?

¿Es posible recortar una imagen JPG sin perder calidad/recomprimir la parte restante de la imagen?

No creo que recortar una imagen pierda la calidad de la misma.
No en sí mismo. Sin embargo, si el editor de imágenes que está utilizando no es lo suficientemente inteligente, cuando se trata de guardar la imagen recortada, podría volver a comprimir fácilmente una imagen ya comprimida, lo que sería innecesario y provocaría la pérdida de la imagen. Me pregunto si es posible evitar esto.
¿Podrías decirme qué tipo de software usas? para la edición de imágenes

Respuestas (4)

Es posible recortar sin pérdidas una imagen JPEG usando la aplicación "jpegtran" que viene con libjpeg; consulte https://en.wikipedia.org/wiki/Libjpeg .

Citando de "man jpegtran" en un sistema donde está instalado jpegtran:

.. el recorte sin pérdidas está restringido por el formato JPEG actual: la esquina superior izquierda de la región seleccionada debe caer en un límite de iMCU [8 o 16]. Si esto no se cumple para los parámetros de recorte dados, movemos silenciosamente la esquina superior izquierda hacia arriba y/o hacia la izquierda para que así sea, aumentando simultáneamente las dimensiones de la región para mantener la esquina inferior derecha de recorte sin cambios. (Por lo tanto, la imagen de salida cubre al menos la región solicitada, pero puede cubrir más).

Con otro software de edición de imágenes, puede minimizar la pérdida asegurándose de que el área recortada tenga dimensiones que sean múltiplos de 8 y esté ubicada con compensaciones que sean un múltiplo de 8 (o 16, si los colores fueron submuestreados) desde la esquina superior izquierda de la imagen original y que la "calidad" de compresión es la misma que la de la imagen original.

El wiki dice "recortar en los bordes del bloque de imagen (cada 8 × 8 o 16 × 16 píxeles)". ¿La herramienta lo limita a estos límites para que esto sea posible? Supongo que por su nota sobre la mitigación de pérdidas en otros programas, la respuesta es "sí" (?)
A veces, el múltiplo debe ser 16 en lugar de 8. JPEG permite el submuestreo de la información de color, lo que significa que los bloques de 8x8 para esos componentes de color en realidad cubrirán 16x16 píxeles.
@MarkRansom cierto, gracias. Amplié la respuesta para mencionar "o 16"
¿Cómo determina si el iMCU es 8 o 16 en Linux?
@LuisA.Florit, puede ejecutar "identificar -verbose" de ImageMagick o alguna otra herramienta de examen JPEG y buscar los "factores de muestreo".
@GlennRanders-Pehrson: Obtuve jpeg: factor de muestreo: 1x1,1x1,1x1 ¿ Qué significa eso?
@GlennRanders-Pehrson: Supongo que MCU=8 solo cuando jpeg:sampling-factor=1x1,1x1,1x1, de lo contrario, ¿MCU=16?

FreeVImager puede hacer esto con una buena GUI.Menú de recorte sin pérdidas Operación de cultivo sin pérdidas

También puede hacer una rotación sin pérdidas de archivos JPEG (las rotaciones de 90 grados no tienen pérdidas). Es FOSS, por lo que si está en Linux, vale la pena obtener Wine para uno.

Hmm... Intenté esto y la versión actual coincide con tu ilustración. Pero no puedo encontrar un control "aceptar" o "hecho" para usar después de mover el rectángulo a la posición deseada.
@JDługosz simplemente presione Entrar :) (la sugerencia en la línea de estado) Además, el autor es comunicable y con gusto responde los correos electrónicos. Puedes decirle ;-)
Wow, casa de mi hermana en Stack Exchange :) . Gracias, si uso FreeVimager, puedo recortar en tamaño grande jpg; si uso GIMP, no puedo hacerlo.
Este programa ajusta los lados inferior y derecho a los límites de iMCU a pesar de que es innecesario y restrictivo. IrfanView funcionó mejor para mí.
La imagen recortada es más grande que la imagen original, utilizando el peaje de Recorte sin pérdida en FreeVImager 9.9.10. asi que es inutil...
@AndreaGiudiceandrea Me detuve en 7.7.0 porque es el último realmente gratuito (los más nuevos son shareware). Y no vi aumentar el tamaño con mis fotos. ¿Puede dar un ejemplo? ¿Quizás ha vuelto a guardar la foto (por lo tanto, la ha vuelto a comprimir) después de recortarla sin pérdidas? De todos modos, el recorte sin pérdida no es para "disminuir el tamaño del archivo", es para evitar la pérdida de calidad debido a la recompresión al eliminar algunas partes de una imagen, por lo tanto, incluso si aumenta el tamaño, no es inútil.
@LogicDaemon, abro una imagen jpeg, 4000x6400 píxeles y unos 3,54 MB, en FreeVImager. Usando la herramienta JPEG Advanced -> Lossless crop, selecciono un área de 3360x6056 pixels y luego presiono Enter: el resultado es una imagen de 3360x6056 pixels (-20%) y 4.10 MB (+16%). O, con la misma imagen, recortando sin pérdidas a 3888x6304 (-4 %), la imagen resultante tiene un tamaño de 4,14 MB (+17 %). De todos modos tienes razón, probablemente no sea completamente inútil. Encontrará el archivo de imagen de prueba y los recortados en mega.nz/folder/C7gjETYZ#LsqBhwU92MaSRIHQr6nV5A
@AndreaGiudiceandrea He verificado, el mismo efecto de aumento de tamaño para mí con la versión 7.7.0. No tengo idea si eso es el resultado de algunas optimizaciones de imágenes originales o un error en FVI al recortar archivos JPEG en escala de grises de 8 bits. Ni siquiera había visto tales jpegs en la naturaleza antes.

Irfanview tiene funciones de rotación y recorte de JPG sin pérdidas:

ingrese la descripción de la imagen aquí

Se accede a esto en el menú con Opciones -> JPG Lossless Crop... (PlugIn).

Si está utilizando Photoshop®, no creo que la imagen se comprima cuando se recorta. La compresión ocurre cuando vuelve a guardar el documento como JPG. Siempre es mejor comenzar con el formato de imagen sin comprimir sin pérdidas más alto que pueda, como .NEF, .BMP... otros (?) Como dice el refrán, caca entra caca.

No creo que sea como tú piensas. Creo que Photoshop no puede recortar sin volver a comprimir.