Tag Archive search

Byphunsanit

1 ภาพ 1,000 ข้อมูล

ต้องการจะเก็บภาพโดยเก็บตามวันที่ ที่โดนถ่าย เหมือนใน Camera Roll เพราะว่าภาพ TIFF, JPEG, WAV จะมีข้อมูล meta data ที่เรียกว่า Exchangeable image file format (Exif) ที่จะใส่ข้อมูลที่ถูกบันทึกไว้ตอนที่ถ่ายไว้โดยใช้กล้องดิจิติล มีข้อมูลสำคัญๆ อย่าง ถ่ายกับกล้องอะไร Manufacturer, Model เวลาที่ภาพถูกถ่าย Date and Time (original) มีการแต่งภาพรึเปล่า เมื่อไหร่ Date and Time (digitized) และถ่ายที่ไหน

ใน php เราสามารถใช้ function exif_read_data ดึงข้อมูลออกมาให้ใช้จัดการกับรูปได้ จะย้ายภาพไปเก็บไว้ตามวันที่ที่ถ่าย หรือตามสถานที่

imagesMoveByEXIFCaptureTime.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
 
/* fix maximum execution time */
set_time_limit(0);
 
/* find file */
$root = 'Photos';
echo'<dl>';
foreach (glob($root."/*.{jpeg,JPEG,jpg,JPG}", GLOB_BRACE) as $filename) {
 
    if($exif = exif_read_data($filename, 'IFD0'))
    {
 
        $date = date('Y-m-d', strtotime($exif['DateTimeOriginal']));
 
        /* create folder */
        $dir = $root.'/'.$date;
        if (!is_dir($dir)) {
            mkdir($dir, 0644, true);
        }
 
        /* move file */
        $path = explode('/', $filename);
        $newFile = $dir.'/'.$path[1];
        rename($filename, $newFile);
 
        echo '<dt>',$filename,'</dt>',
        '<dd>',$newFile,'</dd>';
 
    }
 
}
echo'</dl>',
'<h1>Compleate!</h1>';