/** * ฟังก์ชั่น โหลดภาพ jpg และหมุนภาพอัตโนมัติจากข้อมูลของ Exif * * @param resource $source resource ของรูปภาพต้นฉบับ * @return resource คืนค่า resource ของรูปภาพหลังจากหมุนแล้ว ถ้าไม่สนับสนุนคืนค่า resource เดิม */ public static function orientImage($source) { $imgsrc = imageCreateFromJPEG($source); if (function_exists('exif_read_data')) { // read image exif and rotate $exif = exif_read_data($source); if (!isset($exif['Orientation'])) { return $imgsrc; } elseif ($exif['Orientation'] == 2) { // horizontal flip $imgsrc = gcms::flipImage($imgsrc); } elseif ($exif['Orientation'] == 3) { // 180 rotate left $imgsrc = imagerotate($imgsrc, 180, 0); } elseif ($exif['Orientation'] == 4) { // vertical flip $imgsrc = gcms::flipImage($imgsrc); } elseif ($exif['Orientation'] == 5) { // vertical flip + 90 rotate right $imgsrc = imagerotate($imgsrc, 270, 0); $imgsrc = gcms::flipImage($imgsrc); } elseif ($exif['Orientation'] == 6) { // 90 rotate right $imgsrc = imagerotate($imgsrc, 270, 0); } elseif ($exif['Orientation'] == 7) { // horizontal flip + 90 rotate right $imgsrc = imagerotate($imgsrc, 90, 0); $imgsrc = gcms::flipImage($imgsrc); } elseif ($exif['Orientation'] == 8) { // 90 rotate left $imgsrc = imagerotate($imgsrc, 90, 0); } } return $imgsrc; }