问题标签 [vimage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 如何在 Xamarin 的 iOS 中使用 vImage (Accelerate) 框架?
我想为 iPhone 应用程序做一些图像处理。我发现 vImage 是 iOS 5.0 及更高版本的库(可能在本机 C 中)。
如果我使用 Xamarin 进行应用程序开发,我该如何使用这个库?
ios - How to use vImageMatrixMultiply to convert from YUV planer data to 32 bpp, 8bpc RGBX?
I have YUV planar data (420YpCbCr8BiPlanarFullRange) and I would like to convert it to RBGX (RBGA but with 255 in the alpha channel).
The vImage docs and this answer state this is possible using a Matrix multiplication function:
However, I have been unable to find any sample code to that does this.
core-graphics - 我需要帮助优化 BGR888 到 NSView 的 blitting
这是我想出的将 24 位 BGR 图像传送到 NSView 的最佳方法。
通过确保 NSWindow 主机也具有相同的颜色空间,我确实减少了大量的 CPU 时间。
我认为这里有 4 或 5 个像素的副本:
- 在
vImage
转换中(必填) - 打电话
CGDataProviderCreateWithData
- 打电话
CGImageCreate
- 创建
NSBitmapImageRep
位图 - 在最后的 blit 中
drawInRect
(必需)
任何人都想参与改进它?
任何帮助将非常感激。
ios - 使用 vImageHistogramCalculation 计算图像的直方图
我正在尝试使用 vImage's 计算图像的直方图vImageHistogramCalculation_ARGBFFFF
,但我得到了一个vImage_Error
类型kvImageNullPointerArgument
(错误代码 a -21772)。
这是我的代码:
我怀疑它与我的histogram
参数有关,根据文档,它应该是“指向四个直方图数组的指针”。我是否正确声明了它?
谢谢。
macos - ColorSync 和 vImage 产生错误的输出
我正在尝试捕获显示器的内容并将显示器的色彩空间转换为 sRGB。我正在尝试使用 vImage 和低级 ColorSync 转换 API 来执行此操作,但输出有一个奇怪的像素块加倍。我的 ColorSyncTransformRef 似乎正确,因为 ColorSyncTransformConvert() 有效,但使用 vImage 的 Accelerate 框架版本不正确。有没有人见过这个并且知道如何解决它?谢谢!
这是输出的样子,你可以看到奇怪的加倍:
这是我正在使用的代码:
ios - “致命错误:在 Swift ios 中使用 vImageBuffer_initWithCGImage 时在展开可选值时意外发现 nil”
我正在使用 Swift iOS8 并尝试将 UIImage 转换为 vImage_Buffer 以使用 Accelerate.framework 执行操作。我正在尝试使用 vImageBuffer_initWithCGImage 进行转换,这是我尝试过的代码:
没有编译错误,当我尝试运行它时,我在 vImageBuffer_InitWithCGImage 的行上得到“致命错误:在展开可选值时意外发现 nil”。我不确定为什么会发生这种情况,因为缓冲区和第三个参数(即 backgroundColor)都是不安全的,并且根据文档应该接受 NULL,对于 UnsafeMutablePointer(如果我错了,请纠正我)。
编辑:好的,我至少明白为什么现在发生了。因为我发送未包装的 &buffer!。但我不能发送 &buffer,因为它说“vImage_buffer!与 vImage_buffer 不同”。
我尝试了各种将缓冲区声明为 vImage_buffer 的组合?但我无法让它发挥作用。我基本上只需要分配缓冲区参数以将其传递给 init 函数,但我不知道如何...。请帮忙
c++ - 如何在 ios 中使用 vImage 旋转和粘贴带有 alpha 通道的图像?
我有一个大图像 A 和另一个图像 B,它有一个我想粘贴到 A 中的 alpha 通道。我想在将其粘贴到 A 之前对 B 应用仿射变换。在 c++ 中执行此操作的步骤是什么在 iOS 中使用 vImage?
swift - vImageAlphaBlend 崩溃
我正在尝试layers: [CGImageRef]
在drawLayer(thisLayer: CALayer!, inContext ctx: CGContext!)
我的 custom 例程中进行 alpha 混合NSView
。到目前为止,我一直CGContextDrawImage()
将这些图层绘制到 drawLayer 上下文中。在进行分析时,我注意到CGContextDrawImage()
需要 70% 的 CPU 时间,因此我决定尝试 Accelerate 框架。我更改了代码,但它只是崩溃了,我不知道可能是什么原因。
我正在创建这样的图层:
我的 drawLayers 例程如下所示:
canvasSize 总是相同的,并且所有图层的大小都相同,所以我不明白为什么最后一行会崩溃。
我也看不到如何使用新的便利函数直接从 CGLayerRefs 创建 vImageBuffers。这就是为什么我用复杂的方式来做这件事。
任何帮助表示赞赏。
编辑
inBitmapData
确实包含反映我设置的背景颜色的像素数据。但是,调试器不能po &inBitmapData
并且失败并显示此消息:
错误:对“CFData”的引用未用于初始化 inout 参数 &inBitmapData
所以我寻找一种方法来获取指向 inBitmapData 的指针。这就是我想出的:
我还必须更改指向 alpha 混合输入所需的两个缓冲区的数据的方式。现在它不再崩溃了,幸运的是,可以使用分析器检查速度提升(vImageAlphaBlend
只需要大约三分之一CGContextDrawImage
),但不幸的是,图像会导致透明图像出现像素故障,而不是白色图像背景。
到目前为止,我不再收到任何运行时错误,但由于结果不如预期,我担心我仍然没有正确使用 alpha blend 函数。
ios - 你如何获得不受管理的来自CGColorSpace?
我正在用 Swift 编写一个vImage_CGImageFormat
从 a创建 a 的函数,CGImage
如下所示:
但是,这不会编译。那是因为CGImageGetColorSpace(image)
returnCGColorSpace!
和上面的构造函数只接受Unmanaged<CGColorSpace>
参数colorSpace
。
还有另一种方法可以做到这一点吗?也许转换CGColorSpace
成Unmanaged<CGColorSpace>
?