Add grid, camera focus
This commit is contained in:
26
Caps/Extensions/FileManager+Extensions.swift
Normal file
26
Caps/Extensions/FileManager+Extensions.swift
Normal file
@ -0,0 +1,26 @@
|
||||
import Foundation
|
||||
|
||||
extension FileManager {
|
||||
|
||||
var documentDirectory: URL {
|
||||
try! url(
|
||||
for: .documentDirectory,
|
||||
in: .userDomainMask,
|
||||
appropriateFor: nil, create: true)
|
||||
}
|
||||
|
||||
private func fileSizeEnumerator(at directory: URL) -> DirectoryEnumerator? {
|
||||
enumerator(at: directory,
|
||||
includingPropertiesForKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey],
|
||||
options: []) { (_, error) -> Bool in
|
||||
print(error)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func directorySize(_ directory: URL) -> Int {
|
||||
return fileSizeEnumerator(at: directory)?
|
||||
.compactMap { $0 as? URL }
|
||||
.reduce(0) { $0 + $1.fileSize } ?? 0
|
||||
}
|
||||
}
|
@ -147,3 +147,14 @@ private func saturate(_ component: UInt8) -> CGFloat {
|
||||
}
|
||||
|
||||
extension CIImage: Logger { }
|
||||
|
||||
|
||||
extension UIImage {
|
||||
|
||||
convenience init?(at url: URL) {
|
||||
guard let data = try? Data(contentsOf: url) else {
|
||||
return nil
|
||||
}
|
||||
self.init(data: data, scale: UIScreen.main.scale)
|
||||
}
|
||||
}
|
||||
|
@ -22,4 +22,14 @@ extension URL {
|
||||
var creationDate: Date? {
|
||||
return attributes?[.creationDate] as? Date
|
||||
}
|
||||
|
||||
var fileSizeAlt: Int? {
|
||||
do {
|
||||
let val = try self.resourceValues(forKeys: [.totalFileAllocatedSizeKey, .fileAllocatedSizeKey])
|
||||
return val.totalFileAllocatedSize ?? val.fileAllocatedSize
|
||||
} catch {
|
||||
print(error)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
19
Caps/Extensions/View+Extensions.swift
Normal file
19
Caps/Extensions/View+Extensions.swift
Normal file
@ -0,0 +1,19 @@
|
||||
import SwiftUI
|
||||
|
||||
extension View {
|
||||
|
||||
func snapshot() -> UIImage {
|
||||
let controller = UIHostingController(rootView: self)
|
||||
let view = controller.view
|
||||
|
||||
let targetSize = controller.view.intrinsicContentSize
|
||||
view?.bounds = CGRect(origin: .zero, size: targetSize)
|
||||
view?.backgroundColor = .clear
|
||||
|
||||
let renderer = UIGraphicsImageRenderer(size: targetSize)
|
||||
|
||||
return renderer.image { _ in
|
||||
view?.drawHierarchy(in: controller.view.bounds, afterScreenUpdates: true)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user