A pure Java implementation of the Error Level Analysis method demonstrated in Krawetz, N. 'A Picture's Worth... Image Analysis and Forensics', 2007.
A suspect image is JPEG-compressed to 95%, and the difference between the original and compressed image is computed, then scaled. Areas with high error levels (non-back pixels) represent areas of potential tampering. Wikipedia Article
By default, program overlays areas of high compression error over the original image in the output (original remains unaltered).
Original Image: Doctored Image: Error-level Image: Masked Output Image:
Single file mode example:
java -Xmx4096m -jar ELA.jar test/test1.jpg
Directory mode example:
java -Xmx4096m -jar ELA.jar test