gpt4 book ai didi

swift - 尝试创建 32 bpc NSBitmapImageRep,遇到错误

转载 作者:行者123 更新时间:2023-11-30 10:19:44 24 4
gpt4 key购买 nike

我正在尝试创建一个每个样本 32 位和一个 Alpha channel (每像素总共 128 位)的 NSBitmapImageRep 对象。

我的代码如下所示:

let renderSize = NSSize(width: 640, height: 360)
let bitmapRep = NSBitmapImageRep(bitmapDataPlanes: nil, pixelsWide: Int(renderSize.width), pixelsHigh: Int(renderSize.height), bitsPerSample: 32, samplesPerPixel: 4, hasAlpha: true, isPlanar: false, colorSpaceName: NSCalibratedRGBColorSpace, bytesPerRow: 16 * Int(renderSize.width), bitsPerPixel: 128)
println(bitmapRep) //prints "nil"
println(16 * Int(renderSize.width)) //prints 10240
println()

//So what does a 'valid' 32bpc TIFF file with an alpha channel look like?
let imgFile = NSImage(named: "32grad") //http://i.peterwunder.de/32grad.tif
let imgRep = imgFile?.representations[0] as NSBitmapImageRep
println(imgRep.bitsPerSample) //prints 32
println(imgRep.bitsPerPixel) //prints 128
println(imgRep.samplesPerPixel) //prints 4
println(imgRep.bytesPerRow) //prints 10240
println(imgRep.bytesPerRow / Int(imgFile!.size.width)) //prints 16

执行第 2 行后,这将出现在控制台中:

2014-12-31 04:49:16.639 PixelTestBed[4413:2775703] Inconsistent set of values to create NSBitmapImageRep

这是怎么回事?为什么我不能手动创建具有与 TIFF 图像完全相同的值的 NSBitmapImageRep?

顺便说一句,我无法在这里上传图片,因为 imgur 会降低图片的质量。毕竟,这是一个带有 Alpha channel 的 3.7 MB 32bpc TIFF。

最佳答案

您正在尝试分配 32 位PerSample,这超出了文档中指定的范围:

基点

The number of bits used to specify one pixel in a single component of the data. All components are assumed to have the same bits per sample. bps should be one of these values: 1, 2, 4, 8, 12, or 16.

NSBitmapImageRep Class Reference

关于swift - 尝试创建 32 bpc NSBitmapImageRep,遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27715923/

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