Fly to the sky & Return

폴더를 불러와서 그 폴더안에 있는 사진 EXIF data중 날짜정보만 추출하는 코드 본문

프로그래밍/Swift(IOS & Mac)

폴더를 불러와서 그 폴더안에 있는 사진 EXIF data중 날짜정보만 추출하는 코드

낼은어떻게 2016. 3. 16. 21:19
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

폴더안이 내용을 확인하는 코드와

폴더안의 내용과 그 경로를 합쳐서 EXIF data를 추출하는 코드를 작성 하였네여

중간중간 주석을 달았습니다.왜 그렇게 해야하는지.. 이런저런 에러를 수정하다보니. 그렇게 된

하여튼 파이썬으로 코딩한 것보다는 좀더 복잡하긴 하네영..      그래도 파이썬이랑 비슷한 길을 가는듯해서 기쁘기 한량없습니다.


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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import Cocoa
 
 
class ViewController: NSViewController {
 
   
    @IBAction func open(sender: AnyObject) {
        
        var myOpenDialog: NSOpenPanel = NSOpenPanel()
        myOpenDialog.canChooseDirectories = true
        myOpenDialog.runModal()
        
        var path = myOpenDialog.URL?.path
        var fs: NSFileManager = NSFileManager.defaultManager()
        
        if (path != nil) {
            
            var err = NSError?()
            let contents: Array = try! fs.contentsOfDirectoryAtPath(path!)
            
            if !(err != nil) {
                for f in contents {
                    //확장자를 분리하는 코드
                    let strSplit = f.characters.split(".")
                    //String(strSplit.first!)  <- 파일명 부분
                    var k = String(strSplit.last!)   //<- 확장자부분을 문자열로 지정
                    if k == "jpg" {
                    
                     //문자열을 NSURL로 변경
                    let fileUrl = NSURL(string: "file://" + path! + "/" + f)  // <- path로 넘어온 파일경로는 /Users 로 시작하는 경로인지라 앞에 file:// 추가해서 밑에 함수가 해석가능한 경로로 변경
                    
                    let imageSource = CGImageSourceCreateWithURL(fileUrl!, nil)
                    
                    let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource!0, nil)! as NSDictionary;
                    
                    let exifDict = imageProperties.valueForKey("{Exif}")  as! NSDictionary;
                    let dateTimeOriginal = exifDict.valueForKey("DateTimeOriginal"as! NSString;
                        print(dateTimeOriginal)
                        
                    }
                    
                }
            }
        }
    }
}
 
 
 
 
cs