iOS 11.4 不绘制CGImage

iOS 11.4 Not drawing CGImage

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

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

我没有在我的应用程序或任何依赖库中记录它。这些日志链接只出现在 iOS 11.4.

这是我调用方式的问题 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 的以前版本可以正常工作,现在突然停止了。