22 #include <libexif/exif-loader.h> 
   30         auto data = imageData.constData();
 
   31         auto size = imageData.size();
 
   33         ExifData* exifData = exif_data_new_from_data(
reinterpret_cast<const unsigned char*
>(data), size);
 
   39         const ExifByteOrder byteOrder = exif_data_get_byte_order(exifData);
 
   40         const ExifEntry* 
const exifEntry = exif_data_get_entry(exifData, EXIF_TAG_ORIENTATION);
 
   43             exif_data_free(exifData);
 
   47         const int orientation = exif_get_short(exifEntry->data, byteOrder);
 
   48         exif_data_free(exifData);
 
   68             qWarning() << 
"Invalid exif orientation";
 
   75         QTransform exifTransform;
 
   76         switch (orientation) {
 
   80             image = image.mirrored(1, 0);
 
   83             exifTransform.rotate(180);
 
   86             image = image.mirrored(0, 1);
 
   89             exifTransform.rotate(-90);
 
   90             image = image.mirrored(1, 0);
 
   93             exifTransform.rotate(90);
 
   96             exifTransform.rotate(90);
 
   97             image = image.mirrored(1, 0);
 
  100             exifTransform.rotate(-90);
 
  103         image = image.transformed(exifTransform);