[swift] Swift에서 이미지 다운로드 및 저장하기
이미지 다운로드 및 저장은 Swift 프로그래밍에서 자주 사용되는 작업 중 하나입니다. 이미지를 다운로드하여 로컬 저장소에 저장하는 방법을 알아보겠습니다.
1. URL로부터 이미지 다운로드하기
import UIKit
func downloadImage(from url: URL, completion: @escaping (UIImage?) -> Void) {
URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else {
completion(nil)
return
}
let image = UIImage(data: data)
completion(image)
}.resume()
}
위의 코드는 downloadImage
함수를 정의하고, URL을 입력으로 받아 해당 URL에서 이미지를 다운로드합니다. 다운로드가 완료되면 completion
클로저를 호출하여 다운로드 된 이미지를 반환합니다.
2. 다운로드 된 이미지 저장하기
func saveImage(_ image: UIImage, withName name: String) {
guard let data = image.jpegData(compressionQuality: 1.0) ?? image.pngData() else {
return
}
let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.appendingPathComponent(name)
do {
try data.write(to: fileURL)
print("Image saved at \(fileURL?.path ?? "")")
} catch {
print(error.localizedDescription)
}
}
위의 코드는 saveImage
함수를 정의하고, 다운로드 된 이미지를 로컬 저장소에 저장합니다. 이미지는 JPEG 또는 PNG 형식으로 저장됩니다. 저장된 이미지의 파일 경로는 출력되며, 저장 중 오류가 발생하면 해당 오류를 출력합니다.
3. 사용 예시
let imageURL = URL(string: "https://example.com/image.jpg")!
downloadImage(from: imageURL) { image in
guard let image = image else {
return
}
saveImage(image, withName: "myImage.jpg")
}
위의 코드는 imageURL
에서 이미지를 다운로드한 다음 myImage.jpg
라는 이름으로 저장하는 예시입니다.
결론
Swift에서 이미지를 다운로드하고 저장하는 방법을 알아보았습니다. 위의 코드를 사용하여 손쉽게 이미지를 다운로드하고 로컬 저장소에 저장할 수 있습니다.