What do all the orientation constants of the ExifInterface class in Android mean?

android, exif, jpeg, orientation

Solution

Here are comments from source code (android\media\ExifInterface.java):

// left right reversed mirror
public static final int ORIENTATION_FLIP_HORIZONTAL = 2;
// upside down mirror
public static final int ORIENTATION_FLIP_VERTICAL = 4;
// flipped about top-left <--> bottom-right axis
public static final int ORIENTATION_TRANSPOSE = 5;
// flipped about top-right <--> bottom-left axis
public static final int ORIENTATION_TRANSVERSE = 7;

I think they are self-explaining.

Problem

I understand what the `ORIENTATION_NORMAL`, `ORIENTATION_ROTATE_180`, `ORIENTATION_ROTATE_270`, `ORIENTATION_ROTATE_90` and `ORIENTATION_UNDEFINED`. However i do not understand what `ORIENTATION_FLIP_HORIZONTAL`, `ORIENTATION_FLIP_VERTICAL`, `ORIENTATION_TRANSPOSE` and `ORIENTATION_TRANSVERSE` means in the ExifInterface class in Android. I have searched through Google and could not find anything. Thanks in advance.

Original source