示例#1
0
 /**
  * ฟังก์ชั่น โหลดภาพ 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;
 }