[SwiftUI] 아이폰에 이미지(UIImage)를 pg 파일로 저장

무슨 보도요?
SwiftUI에서 사진을 찍는 앱을 만들지만 카메라 롤러에 저장된 사진은 이름을 지을 수 없다.따라서 아이폰 호스트에 이름이 붙은 이미지를 저장할 수 있다.
이 글의 정보는 다음 버전의 동작을 확인하고 있다.
【Xcode】13.1
【Swift】5.5.1
【iOS】15.1
【macOS】Big OS Monterey 12.1
ios 응용 프로그램의 파일 시스템
iOS 애플리케이션은 시스템의 불법 작동을 방지하기 위해 각 애플리케이션에 액세스할 수 있는 폴더를 제공합니다.Sandbox 구조라고 합니다.대상 폴더는 터미널에서 프로그램을 삭제하는 동시에 삭제됩니다.
Mac 호스트와 아이폰을 연결하면 Finder에서 파일 시스템에 액세스할 수 있습니다.프로그램마다 폴더가 있다는 것을 알 수 있습니다.
응용 프로그램에 파일을 쓰기 위해
SavetoDoc
    //private func saveToDoc (image: UIImage, fileName: String ) -> Bool{
    public func SaveToDoc () -> Bool{
         let pngImageData = UIImage.pngData(image)
               //iPhone内ファイルシステムのURLを取得
        let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
               //ファイル名をつなげる
        let fileURL = documentsURL.appendingPathComponent("test.png")
              //保存
        do {
            try pngImageData()!.write(to: fileURL)
            print("SaveToDoc Done!")
        } catch {
            //エラー処理
            return false
        }
        return true
    }
권한 설정
위의 스크립트에 따라 오류 없이 실행할 수 있지만, 설정 권한이 없으면 파일 시스템에 적용되는 폴더가 만들어지지 않습니다.필요한 설정은 다음과 같은 두 가지가 있다.
・Supports opening documents in place
・Application supports iTunes file sharing

이 설정은 프로그램이 시작되고 파일 시스템에 새 폴더가 생성됩니다.test.png도 무사히 보관하고 있어요.

참조:
https://develop.hateblo.jp/entry/iosapp-uiimage-save
https://capibara1969.com/2836/

좋은 웹페이지 즐겨찾기