Respuestas:
Puede hacerlo, pero solo si su visor JPEG admite la extensión SmartScale JPEG. jpegtran puede hacer esto para tamaños de N / 8, con N = 1..16. Básicamente, el tamaño del bloque DCT se cambia de 8x8 a otro durante la recompresión (por ejemplo, 4x4), que escala la imagen de manera efectiva.
Nota: SmartScale se introdujo en la versión 8 de la biblioteca libjpeg, pero los espectadores no lo admiten ampliamente.
Un documento que describe los cambios en detalle se puede encontrar aquí: Evolución de JPEG .
EDITAR: Parece que la mayoría de los espectadores no pueden mostrar estas imágenes, ya que están basadas en libjpeg-turbo. Y libjpeg-turbo decidió no implementar esta función . De hecho, he probado bastantes programas (en Ubuntu 14.04 y Windows 8) y ninguno ha podido mostrar la imagen reducida creada con jpegtrans. Incluso Photoshop, IrfanView y GIMP fallaron.
EDIT 2: De hecho, Ubuntu y Fedora ni siquiera envían la biblioteca libjpeg8, sino que la reemplazan completamente con la versión libjpeg-turbo. Por lo tanto, ninguno de los programas podrá leer archivos JPEG SmartScale, salvo algunos binarios que están vinculados estáticamente a la biblioteca libjpeg8 original.
La respuesta corta es no. Una imagen JPEG utiliza compresión, lo que significa que cada byte de salida depende de todos los demás. Si cambia el número de bytes de imagen, debe descomprimir y volver a comprimir.
Habrá una pérdida de calidad como resultado de la recompresión, ya que JPEG usa compresión con pérdida, pero de todos modos está perdiendo calidad al descuartizar la resolución. Puede obtener la mejor calidad posible de la imagen de baja resolución aumentando el nivel de calidad JPEG al volver a comprimir, aunque esto, por supuesto, aumentará el tamaño del archivo.
Si hace mucho trabajo con imágenes, lo mejor es trabajar en un formato de compresión sin pérdidas, como PNG, convirtiendo a JPEG solo cuando las imágenes estén finalizadas, siempre que tenga espacio de disco adicional.