Le expliqué que es cierto que las imágenes en JPEG pierden calidad, pero sólo cada vez que se escriben. Me quedé pensando un momento en mis días de la universidad, en la transformada del coseno y en su puta madre, y pensé que seguramente llegaría un punto en el que después de codificar y decodificar varias veces en cadena una imagen, se llegaría a un punto fijo, en el que no se perdería más calidad.
Me daba bastante pereza ponerme a probarlo, pero al final tiré de scripting en Python una vez más y he aquí los resultados:
import Image import ImageMath import sys def main(): prefix, suffix = sys.argv[1].split('.') prev = Image.open(sys.argv[1]) go_on = True i = 0 while go_on and i < 100: name = prefix + str(i) + '.' + suffix print 'name=',name prev.save(name) next = Image.open(name) diff = ImageMath.eval('abs(float(a) - float(b))', a=next, b=prev) go_on = tuple(next.getdata()) != tuple(prev.getdata()) prev = next hist = diff.histogram() i += 1 print hist if __name__ == "__main__": sys.exit(main())El programilla va imprimiendo el histograma de la diferencia entre dos imágenes consecutivas y se para cuando todos los píxels están a cero. Probando con un par de imágenes, parece que el punto fijo se alcanza tras unas cuantas iteraciones, entre 8 y 40. Así que no temáis demasiado por una degradación sin límites de vuestras fotos si las andáis retocando sobre los JPEGs, aunque nunca está de más guardar los originales en RAW, TIFF o PNG.
No hay comentarios:
Publicar un comentario