is_photo() && $item->mime_type == "image/jpeg") { require_once(MODPATH . "exif/lib/exif.php"); $exif_raw = read_exif_data_raw($item->file_path(), false); if (isset($exif_raw['ValidEXIFData'])) { $orientation = $exif_raw["IFD0"]["Orientation"]; $degrees = 0; if ($orientation == '3: Upside-down') { $degrees = 180; } else if ($orientation == '8: 90 deg CW') { $degrees = -90; } else if ($orientation == '6: 90 deg CCW') { $degrees = 90; } if($degrees) { $tmpfile = tempnam(TMPPATH, "rotate"); gallery_graphics::rotate($item->file_path(), $tmpfile, array("degrees" => $degrees)); // Update EXIF info $data = new PelDataWindow(file_get_contents($tmpfile)); if (PelJpeg::isValid($data)) { $jpeg = $file = new PelJpeg(); $jpeg->load($data); $exif = $jpeg->getExif(); if($exif !== null) { $tiff = $exif->getTiff(); $ifd0 = $tiff->getIfd(); $orientation = $ifd0->getEntry(PelTag::ORIENTATION); $orientation->setValue(1); file_put_contents($tmpfile, $file->getBytes()); } } $item->set_data_file($tmpfile); $item->save(); unlink($tmpfile); } } } return; } }