Fly to the sky & Return

사진 exif data 중 날짜정보 불러오기 본문

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

사진 exif data 중 날짜정보 불러오기

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




OpenFile-master 2.zip



파이선을 이용하여 exif 정보를 통해 각각의 사진들을 날짜별로 정리하는 코딩을 했었는데


xcode를 이용해서 비슷한 코딩을 해보고 싶어서 시작한 작업입니다..   


전체코드는 압축파일안에 있습니다..   

viewcontroller 부분의 코드는 다음과 같습니다.


기존  소스에 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
51
52
53
import Cocoa
 
class ViewController: NSViewController {
 
    override func viewDidLoad() {
        super.viewDidLoad()
 
        // Do any additional setup after loading the view.
    }
 
    override var representedObject: AnyObject? {
        didSet {
        // Update the view, if already loaded.
        }
    }
 
    @IBOutlet weak var test_label: NSTextField!
    @IBAction func choosingFile(sender: AnyObject) {
        let openPanel = NSOpenPanel()
        /*
        openPanel.allowedFileTypes = ["css","html","pdf","png"]
        openPanel.canChooseDirectories = true
        openPanel.resolvesAliases = true
        openPanel.allowsMultipleSelection = true
        */
        openPanel.title = "Choose a file"
        openPanel.beginWithCompletionHandler({(result:Int) in
            if(result == NSFileHandlingPanelOKButton)
            {
                let fileURL = openPanel.URL!
                //print(fileURL)
                //do something with the selected file. Its url = fileURL
                
                //added by morrow
                
                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;
                self.test_label.stringValue = dateTimeOriginal as String
                
                
               
            }
        })
    }
 
}
 
 
 
초종

cs


최종목표는  파이썬에서 처럼  폴더전체를 읽고와서 각각의 사진을 날짜폴더별로 분류하는 것입니다.  사실 파이썬에 완성된 코드가 있어서 그것으로 작업을 하면 되지만 swift를 뱅는 입장인지라 한번 해보고 싶어서 시작한 작업입니다.