728x90
프로젝트를 진행하면서 고민해야 할 부분이 생겼습니다.
저희 프로그램은 Pdf→ Image → Numbers 로 변환을 해주는 프로그램입니다.
이때 여러 PDF 파일에서 Numbers로 변환할 Image들만 맥북에 저장을 하고 저장한 Image들을 Numbers 파일에 삽입 후 Image를 삭제합니다. 어떻게 개발을 해야할지 고민을 해봤습니다.
이미지 저장 Flow (개발)
PDF에서 선택된 이미지만 유저가 지정한 경로에 iWaverTemp폴더(🗂️)에 저장이 됩니다.
이 폴더는 Numbers 파일 생성이 완료되면 자동으로 삭제됩니다.
예시) 유저가 3개의 Numbers 파일을 생성한 경우
🗂️ iWaverTemp
├──🗂️ 유저가 정한 numbers1 파일 이름
│ ├── Image0 ~ Image30 (좌상단에서 우측 순서대로 이미지 숫자를 저장)
├──🗂️ 유저가 정한 numbers2 파일 이름
│ ├── Image0 ~ Image20
├──🗂️ 유저가 정한 numbers3 파일 이름
│ ├── Image0 ~ Image10
위의 형식으로 폴더가 생성된 후 이미지를 저장 후 numbers 파일 변환이 끝나면 폴더가 삭제됩니다.
이런 방식을 하기 위해서 saveImageToCustomDirectory 함수를 생성했습니다.
아래는 예시 코드입니다.
private func saveImageToCustomDirectory(image: NSImage, filename: String, directoryPath: String) {
if let data = image.tiffRepresentation,
let imageRep = NSBitmapImageRep(data: data) {
if let imageData = imageRep.representation(using: .jpeg, properties: [:]) {
do {
let iWaverDirectoryURL = URL(fileURLWithPath: directoryPath).appendingPathComponent("\\(saveFileVM.samp[0])")
if !FileManager.default.fileExists(atPath: iWaverDirectoryURL.path) {
try FileManager.default.createDirectory(at: iWaverDirectoryURL, withIntermediateDirectories: true, attributes: nil)
}
let fileURL = iWaverDirectoryURL.appendingPathComponent(filename)
try imageData.write(to: fileURL)
saveFileVM.numbersFile.imagePaths.append(fileURL.path)
} catch {
print("Error saving image: \\(error)")
}
}
}
}
728x90
'SwiftUI > 개발' 카테고리의 다른 글
[SwiftUI] UI 최적화 문제 (1) | 2024.01.12 |
---|---|
[SwiftUI] 코드 중복 실행 문제 (0) | 2023.11.01 |
[Swift] 폴더 이름 중복 검사 (1) | 2023.10.28 |
[SwiftUI] View가 멈추는 현상 (0) | 2023.10.25 |
[SwiftUI] 프로그램 차단 기능 (0) | 2023.10.06 |