gpt4 book ai didi

xcode - 无法在 Swift 中创建 NSBitmapImageRep

转载 作者:可可西里 更新时间:2023-11-01 00:24:20 24 4
gpt4 key购买 nike

我有一个用 xcode 6.1 创建的 osx xcode 项目我想用它来训练一下 SWIFT 的使用。

在我的一个观点中,我尝试创建一个 NSBitMapImageRep,如下所示:

class BitmapView : NSView {
var image: NSBitmapImageRep!

override func awakeFromNib() {
var blub = NSBitmapImageRep(bitmapDataPlanes: nil,
pixelsWide: Int(self.frame.size.width),
pixelsHigh: Int(self.frame.size.height),
bitsPerSample: 8,
samplesPerPixel: 1,
hasAlpha: false,
isPlanar: false,
colorSpaceName: NSCalibratedRGBColorSpace,
bytesPerRow: 0, bitsPerPixel: 0)!

//test()
}}

但每次我尝试运行它时,我都会收到以下错误:

Inconsistent set of values to create NSBitmapImageRep fatal error: unexpectedly found nil while unwrapping an Optional value

我猜这是因为 bitmapDataPlanes 为零。但它是一个可选值,根据文档允许为 NULL。传递 NSNull() 而不是编译。

有人能告诉我我必须通过什么吗? o_O

最佳答案

该错误实际上具有相当的描述性 - 您向初始化程序提供了一组不一致的值。具体来说,值为 1 的 samplesPerPixel 不能支持您在 colorSpaceName 中指定的 RGB 颜色空间。 From here :

samplesPerPixel: The number of data components, or samples per pixel. This value includes both color components and the coverage component (alpha), if present. Meaningful values range from 1 through 5. An image with cyan, magenta, yellow, and black (CMYK) color components plus a coverage component would have an spp of 5; a grayscale image that lacks a coverage component would have an spp of 1.

所以你只需要将每个像素的样本数更改为 3:

var blub = NSBitmapImageRep(bitmapDataPlanes: nil,
pixelsWide: Int(100),
pixelsHigh: Int(100),
bitsPerSample: 8,
samplesPerPixel: 3,
hasAlpha: false,
isPlanar: false,
colorSpaceName: NSCalibratedRGBColorSpace,
bytesPerRow: 0, bitsPerPixel: 0)!

关于xcode - 无法在 Swift 中创建 NSBitmapImageRep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26978985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com