29 lines
747 B
Swift
29 lines
747 B
Swift
import AppKit
|
|
|
|
extension NSImage {
|
|
|
|
func writePng(to url: URL) -> Bool {
|
|
// Get CGImage from NSImage
|
|
guard let cgImage = self.cgImage(forProposedRect: nil, context: nil, hints: nil) else {
|
|
return false
|
|
}
|
|
|
|
// Create a bitmap representation
|
|
let bitmapRep = NSBitmapImageRep(cgImage: cgImage)
|
|
bitmapRep.size = self.size // Preserve image size
|
|
|
|
// Convert to PNG data
|
|
guard let pngData = bitmapRep.representation(using: .png, properties: [:]) else {
|
|
return false
|
|
}
|
|
|
|
do {
|
|
try pngData.write(to: url)
|
|
return true
|
|
} catch {
|
|
print("Error writing PNG:", error)
|
|
return false
|
|
}
|
|
}
|
|
}
|