php reads the exif headers from JPEG

ขึ้นหัวข้อ อินเตอร์ๆ นิดนึง
ช่วงนี้ผมกำลังฝึกถ่ายรูป จะบอกว่า เห่อ กล้อง SLR ที่เพิ่ง ถอยมาก็ว่าได้ หมดไปตั้งหลายหมื่น T_T
เข้าเรื่องดีกว่า ผมเคยเห็น เว็บ http://www.focusshot.com/?page=phototag
เขาดึงข้อมูลจากรูป
ที่เราถ่าย ด้วยกล้องระบบ ดิจิตอล ออกมาแสดงให้เห็น เลย สงสัยว่าในรูป มันมีข้อมูล เกี่ยวกับกล้อง
หรือสิ่งที่เรา ตั้งค่ากล้องก่อนจะถ่ายรูปๆ นั้น ไว้เยอะ ขนาดนั้นเชียว  นิสัยเจ้หนูทำไม ก็เกิดขึ้นอีกแล้ว
เลยไปเจอ function ตัวนึงของ php ชื่อว่า exif_read_data()

ความสามารถพิเศษเข้าเจอฟังก์ชั่นตัวนี้คือ อ่านข้อมูลที่อยู่ในภาพ .jpg ซึ่งเกิดจากกล้องถ่ายรูปได้ อิอิ
เข้าทางเลย

ก่อนอื่นใครจะทดลองแบบผม ต้อง แก้ไข ไฟล์ php.ini ก่อนนะครับ
เอาเครื่องหมาย " ; " หรือ เซมิโคลอน  ที่ตำแหน่ง extension=php_mbstring.dll และ extension=php_exif.dll ออกก่อน แล้วอย่าลืม restart apache
ด้วยละ ถ้าเป็น php 5 ต้องเรียกลำดับ ของ extension ในไฟล์ php.ini ใหม่ด้วยนะครับให้เป็นแบบนี้

extension=php_mbstring.dll
extension=php_exif.dll

โค๊ดตัวอย่าง ครับ

<?php
$exif_data = exif_read_data ('IMG_3176.JPG');  
//เปลี่ยน IMG_3176.JPG เป็นรูปที่คุณถ่ายมา
echo"Make:".$emake =$exif_data['Make']."<br>";
echo"Model:".$emodel = $exif_data['Model']."<br>";

$eexposuretime = $exif_data['ExposureTime'];

/*---หาค่า exposuretime ใหม่ เพราะ ค่าที่ได้ มันเพี้ยนๆ ถ้าเป็นกล้อง Nikon-------*/
$eexposure=explode("/",$eexposuretime);
$eexpo1=$eexposure[0]/$eexposure[0];
$eexpo2=$eexposure[1]/$eexposure[0];
 /*---หาค่า exposuretime ใหม่ เพราะ ค่าที่ได้ มันเพี้ยนๆ ถ้าเป็นกล้อง Nikon-------*/
echo"ExposureTime:".$eexpo1."/".$eexpo2."<br>";

$efnumber = $exif_data['FNumber'];
/*---หาค่า Fnumber ใหม่ -------*/
$fn=explode("/",$efnumber);
$fnumber=$fn[0]/$fn[1];
/*---หาค่า Fnumber ใหม่ -------*/

echo"FNumber:".$fnumber."<br>";
echo"ISOSpeedRatings:".$eiso = $exif_data['ISOSpeedRatings']."<br>";
echo"DateTime:".$edate = $exif_data['DateTime']."<br>";
?>

จบข่าว มีภาค 2 นะครับ ในภาค 2 เราจะเอาข้อมูลที่ได้ ไปเขียนใส่ในรูปที่ถ่ายมา เพื่อความเท่ห์ แบบรูปตัวอย่างนี้ครับ