🍁

Swift: 色から画像をさっと作る

2025/03/03に公開

UIColorからUIImageを作る

案1
let rect = CGRect(x: 0, y: 0, width: 10, height: 10)
let uiImage = UIGraphicsImageRenderer(size: rect.size).image { context in
    UIColor.black.set()
    context.fill(rect)
}
案2
let uiImage = UIImage(ciImage: CIImage(color: CIColor(color: .black)!)
            .cropped(to: CGRect(x: 0, y: 0, width: 10, height: 10)))

NSColorからNSImageを作る

案1
let image = NSImage(size: CGSize(width: 10, height: 10), flipped: true) { rect in
    NSColor.black.drawSwatch(in: rect)
    return true
}
案2
let ciImage = CIImage(color: CIColor(color: .black)!)
            .cropped(to: CGRect(x: 0, y: 0, width: 10, height: 10))
let cgImage = CIContext(options: nil).createCGImage(ciImage, from: ciImage.extent)!
let nsImage = NSImage(cgImage: cgImage, size: ciImage.extent.size)

Discussion