gpt4 book ai didi

cocoa - 使用 NSImage 创建并写入调色板 RGBA PNG

转载 作者:行者123 更新时间:2023-12-03 17:43:49 26 4
gpt4 key购买 nike

我正在尝试使用 Cocoa 框架*创建使用 RGBA 调色板(每个调色板条目 32 位)的 调色板 PNG 图像(每像素 8 位)。

我尝试了 [NSBitmapImageRep initWithBitmapDataPlanes:…] 方法的几种组合。它似乎为 bitsPerSample:2 bitsPerPixel:8 创建了适当的位图。

但是,当我尝试使用 [NSBitmapImageReprepresentationUsingType:NSPNGFileType...] 编写这样的位图时,我得到:

libpng error: Invalid bit depth for RGBA image

如果我尝试其他位深度,那么我会得到每像素 32 位(非调色板)图像。

<小时/>

*) 我知道我可以只使用 libpng,但这不是我正在寻找的答案。

最佳答案

每个样本 2 位,每个像素 8 位不会为您提供索引的 PNG——理论上,它会创建每个样本 2 位的 RGBA PNG 文件,正如它所建议的那样。现在,这样的图像每个像素有 256 个可能的颜色值(包括 Alpha channel ),但它没有在颜色查找表的意义上建立索引。

据我所知,使用 NSBitmapImageRep 时无法指定调色板。您可能必须直接使用 libpng 才能获得您想要的效果。 (顺便说一句,如果您不寻找这个答案也没关系。它仍然是这个特定问题的正确答案,并且说“不!”不会改变您周围的宇宙。)

但是,在您这样做之前,如果您告诉我们您认为/知道您需要索引的 PNG 的原因,我们也许可以为您指出更好或更简单的解决方案。

关于cocoa - 使用 NSImage 创建并写入调色板 RGBA PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4916380/

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