如何转换UIImage的位图格式?

时间:2015-09-30 18:06:45

标签: ios uiimage

我需要将我的位图从kCVPixelFormatType_32BGRA的普通相机格式转换为kCVPixelFormatType_24RGB格式,以便它可以被第三方库使用。

如何做到这一点?

我的c#代码看起来像是直接使用字节数据:

byte[] sourceBytes = UIImageTransformations.BytesFromImage(sourceImage);
// final source is to be RGB
byte[] finalBytes = new byte[(int)(sourceBytes.Length * .75)];
int length = sourceBytes.Length;
int finalByte = 0;
for (int i = 0; i < length; i += 4) 
{
    byte blue = sourceBytes[i];
    byte green = sourceBytes[i + 1];
    byte red = sourceBytes[i + 2];

    finalBytes[finalByte] = red;
    finalBytes[finalByte + 1] = green;
    finalBytes[finalByte + 2] = blue;
    finalByte += 3;
}

UIImage finalImage = UIImageTransformations.ImageFromBytes(finalBytes);

但是,我发现我的sourceBytes长度并不总是被4整除,这对我没有任何意义。

0 个答案:

没有答案