iOS 11.4没有绘制CGImage

时间:2018-06-14 01:50:16

标签: ios core-animation

我的应用适用于iOS 11.3但不适用于11.4。它部分但不完全呈现。 我查看了我的代码,找不到任何特定的问题。 我只有以下日志行:

2018-06-13 21:34:40.637820-0400 XXXXXXXX[5108:1788561] [Render] CoreAnimation: data provider size is too small

我不会在我的应用程序或任何依赖库中记录它。这些日志lins仅出现在iOS 11.4中。

1 个答案:

答案 0 :(得分:0)

这是我如何呼叫CGImageCreate的问题,我的旧代码看起来像这样:     CGImageRef shapeRef = nil;

ShapeSurface* s; //init happens elsewhere in C++ code

CGDataProviderRef dataRef = CGDataProviderCreateWithData(s, s->pBitmap,
                                                         s->width * s->height * 4,
                                                         ReleaseCGShapeCallback);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

shapeRef = CGImageCreate(s->width,
                         s->height,
                         8,                     // bits per component (byte)
                         4 * 8,                 // bits per pixel (4 bytes per pixel, 8 bits per pyte)
                         s->width,              // bytes per row
                         colorSpace,            // image color space
                         kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst,
                                                // surfaces are argb little-endian
                         dataRef,               // data provider for the raw image
                         NULL,                  // no decoder
                         false,                 // no interpolation
                         kCGRenderingIntentDefault);
CGColorSpaceRelease(colorSpace);
CGDataProviderRelease(dataRef);

此行已更改:

                         s->width * 4,         // bytes per row

现在每行字节计算正确。我不知道为什么以前的iOS版本可以正常运行,而现在突然停止。