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 的以前版本可以正常工作,现在突然停止了。
我的应用适用于 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 的以前版本可以正常工作,现在突然停止了。