CGWindowListCreateImage 创建每像素 4 字节的图像。如何将其更改为每像素 3 个字节?

标签 c xcode macos cocoa

通过调用 CGWindowListCreateImage 获得的屏幕截图是 RGBA 图像。

如何强制它返回 RGB 格式的图像(每像素 3 个字节)?

谢谢!!!

最佳答案

CGImage 不支持没有 Alpha channel 的格式。甚至 kCGImageAlphaNone 也只是意味着“忽略 alpha 位。”

如果您想要 24 位图像格式,则需要自行转换。 vImage 有一些例程可以有效地完成此操作。例如,您可以使用 vImageFlatten_ARGB8888ToRGB888 将 ARGB 转换为 RGB .

关于CGWindowListCreateImage 创建每像素 4 字节的图像。如何将其更改为每像素 3 个字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19252622/

相关文章:

iphone - 何时在 Objective C 开发中使用框架

c - 是write系统调用减少内存写周期如何处理

c - c语言如何让用户输入一个数学函数?

ios - 以编程方式获取 Storyboard ID?

ios - 下载的图像尺寸比想要的尺寸大

node.js - Dockerized Node js 应用程序无法启动

macos - 结束 NSTextView 编辑的首选击键

javascript - 是否可以在 Electron js 的 OS X 上启用非狮子式全屏?

无法使 C 中的函数正常执行

c - pic32mx230 spi 字节数