54 lines
959 B
Swift
54 lines
959 B
Swift
import Foundation
|
|
import AppKit
|
|
|
|
enum ImageType {
|
|
case jpg
|
|
case png
|
|
case avif
|
|
case webp
|
|
case gif
|
|
|
|
var fileExtension: String {
|
|
switch self {
|
|
case .jpg: return "jpg"
|
|
case .png: return "png"
|
|
case .avif: return "avif"
|
|
case .webp: return "webp"
|
|
case .gif: return "gif"
|
|
}
|
|
}
|
|
|
|
var fileType: NSBitmapImageRep.FileType {
|
|
switch self {
|
|
case .jpg:
|
|
return .jpeg
|
|
case .png, .avif, .webp:
|
|
return .png
|
|
case .gif:
|
|
return .gif
|
|
}
|
|
}
|
|
}
|
|
|
|
extension ImageType: CaseIterable {
|
|
|
|
}
|
|
|
|
extension ImageType {
|
|
|
|
init?(fileExtension: String) {
|
|
switch fileExtension {
|
|
case "jpg", "jpeg":
|
|
self = .jpg
|
|
case "png":
|
|
self = .png
|
|
case "avif":
|
|
self = .avif
|
|
case "webp":
|
|
self = .webp
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
}
|