Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I fix photos with corrupt jpeg data? [closed]

My phone (android, fwiw) takes pictures that are corrupted. I'm not sure why or how it is doing this, but it seems to prevent me from uploading the photos to some services. If I move the photos to my computer and open them in GIMP I see a warning message:

Corrupt JPEG data: 1130 extraneous bytes before marker 0xd9

The error doesn't prevent me from viewing or editing the photos, but I'm wondering if there's some way to set up a batch process that would fix this problem?

like image 305
Amanda Avatar asked Jul 17 '14 13:07

Amanda


3 Answers

It's hard to tell without an image to try it on, but I would think ImageMagick would rewrite your images properly without the superfluous data. If you are on Linux it is probably installed, look for a program called convert and/or mogrify which belong to ImageMagick, else you can install it from here.

Then you want a command that does nothing too drastic to your image, so something like this should be pretty harmless:

mogrify -set comment 'Extraneous bytes removed' *.jpg

Back up your files first though, and test before applying to thousands of images!

like image 172
Mark Setchell Avatar answered Oct 12 '22 09:10

Mark Setchell


I had the problem that the jpg file ended prematurely and mogrify wouldn't resize my images. My solution to this problem was to convert the images to png and back to jpg. This fixed the problem:

#!/bin/bash

mogrify -format png *.jpg
rm *.jpg
mogrify -format jpg *.png
rm *.png

There might be a quality loss due to compression artifacts, but for my purpose this was fine.

like image 2
Eekhoorn Avatar answered Oct 12 '22 09:10

Eekhoorn


I encountered the same issue when I was building an image classification model: I retrained the model (written in Tensorflow) using lots of images as input.

After some investigation, I found the error are caused by the image editing(crop and rotate). As the EXIF info still keep the original dimension, it doesn't match the latest dimension after editing. Fix is very easy, we can use mogrify of imagick to delete the outdated EXIF info.

mogrify <file name>

or

mogrify -strip <file name>

like image 1
Eric Tan Avatar answered Oct 12 '22 08:10

Eric Tan