This is my code that I use to save the image to a Bitmap. This piece of code is based on the code from CyanogenMod\'s camera app so I would assume it would work
I should probably also mention that saving the data directly using a FileOutputStream was creating a proper JPEG image. So the problem must be with the BitmapFactory and the way I create the Bitmap.
Camera outputs fully processed JPEG data (hopefully), and you can write it to disk. Now what you should try:
BitmapFactory process the original file and file saved by Image editor, see if you get a bad bitmap in both. If image is valid JPEG and BitmapFactory still produces wrong Bitmap, the problem is with BitmapFactory (less likely), if file output by Camera is invalid JPEG, problem is with Camera (more likely).