mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-06 07:38:21 +00:00
35 lines
791 B
Swift
35 lines
791 B
Swift
//
|
|
// AppKitExtensions.swift
|
|
// Ghostty
|
|
//
|
|
// Created by luca on 27.10.2025.
|
|
//
|
|
|
|
import AppKit
|
|
|
|
extension NSColor {
|
|
var isLightColor: Bool {
|
|
return self.luminance > 0.5
|
|
}
|
|
|
|
var luminance: Double {
|
|
var r: CGFloat = 0
|
|
var g: CGFloat = 0
|
|
var b: CGFloat = 0
|
|
var a: CGFloat = 0
|
|
|
|
guard let rgb = self.usingColorSpace(.sRGB) else { return 0 }
|
|
rgb.getRed(&r, green: &g, blue: &b, alpha: &a)
|
|
return (0.299 * r) + (0.587 * g) + (0.114 * b)
|
|
}
|
|
}
|
|
|
|
extension NSImage {
|
|
func colorAt(x: Int, y: Int) -> NSColor? {
|
|
guard let cgImage = self.cgImage(forProposedRect: nil, context: nil, hints: nil) else {
|
|
return nil
|
|
}
|
|
return NSBitmapImageRep(cgImage: cgImage).colorAt(x: x, y: y)
|
|
}
|
|
}
|