使用Accelerate Framework基于RGB值修改Alpha

时间:2014-08-28 10:16:39

标签: ios accelerate-framework

是否可以根据像素RGB值使用Accelerate框架调整alpha?

具体来说,如果颜色为黑色(RGB 0),我想将Alpha设置为0/0/0

1 个答案:

答案 0 :(得分:2)

没有加速。在CoreGraphics中,您可以根据需要设置蒙版颜色。

https://developer.apple.com/library/mac/documentation/graphicsimaging/conceptual/drawingwithquartz2d/dq_images/dq_images.html#//apple_ref/doc/uid/TP30001066-CH212-CJBHCADE

严格地说,如果你在CGImageRef上设置了一个掩蔽颜色,然后使用vImageBufer_InitWithCGImage将其解码为像素,它应该执行/可能/限定的那个。但是,在这种情况下,CG正在进行掩蔽工作。

您可以提交雷达要求。到目前为止,它并不是一个优先事项,因为你获得的alpha不是消除锯齿的。

typedef __attribute__ ((ext_vector_type( 4),__aligned__( 16))) uint32_t uint4;

// ARGB example (on little endian processor):
//   uint4 result = maskByColor( pixels, (uint4)0, (uint4) 0x000000ff );
uint4 maskByColor( uint4 fourPixels, uint4 maskColor, uint4 alphaMask ){
    return fourPixels & ~(maskColor == (fourPixels & ~alphaMask));
}