为什么我会收到此错误" CGBitmapContextCreate:不支持的参数组合"?

时间:2017-03-07 07:35:57

标签: ios objective-c bitmap

场景1)

我正在读取文档文件夹中的png文件。如果我直接从Documents文件夹中读取文件,我会得到以下值。

    NSUInteger width = CGImageGetWidth(imageRef);   => 2000
    NSUInteger height = CGImageGetHeight(imageRef); => 2000

    NSUInteger bytesPerPixel = CGImageGetBitsPerPixel(imageRef) / 8;    => 8
    NSUInteger bytesPerRow = CGImageGetBytesPerRow(imageRef);           => 16000
    NSUInteger bitsPerComponent = CGImageGetBitsPerComponent(imageRef); => 16

如果我尝试从中创建BitmapContext,

    CGContextRef context = CGBitmapContextCreate(imageData,
                                                 width,
                                                 height,
                                                 bitsPerComponent,
                                                 bytesPerRow,
                                                 colorSpace,
                                                 bitmapInfo);

它给出":CGBitmapContextCreate:不支持的参数组合"并失败。

情景2)

如果我将相同的png文件添加到" Assets.xcassets",那么我会得到以下值

    NSUInteger width = CGImageGetWidth(imageRef);   => 2000
    NSUInteger height = CGImageGetHeight(imageRef); => 2000

    NSUInteger bytesPerPixel = CGImageGetBitsPerPixel(imageRef) / 8;    => 4
    NSUInteger bytesPerRow = CGImageGetBytesPerRow(imageRef);           => 8000
    NSUInteger bitsPerComponent = CGImageGetBitsPerComponent(imageRef); => 8

然后我可以毫无问题地创建BitmapContext。

任何人都可以帮我这个..? (我必须使用" Assets.xcassets&#34读取文档文件夹中的文件;)

0 个答案:

没有答案