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 } } }