Iphone UIGraphicsGetCurrentContext出错
我一直试图用石英在一个图层上写一个图像,但我看到的都是完全空白的图像。。。这是密码Iphone UIGraphicsGetCurrentContext出错,iphone,iphone-sdk-3.0,Iphone,Iphone Sdk 3.0,我一直试图用石英在一个图层上写一个图像,但我看到的都是完全空白的图像。。。这是密码 CGContextRef context = UIGraphicsGetCurrentContext(); CGRect backRect = CGRectMake (0, 0, image.size.width, image.size.height); CGLayerRef backLayer = CGLayerCreateWithContext (context, image.size, NULL);
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect backRect = CGRectMake (0, 0, image.size.width, image.size.height);
CGLayerRef backLayer = CGLayerCreateWithContext (context, image.size, NULL);
CGContextRef backContext = CGLayerGetContext (backLayer);
CGContextDrawImage(backContext, backRect, image.CGImage);
你们能告诉我这个代码有什么问题吗
图像是用相机拍摄的图像
是的,图像在那里。如果我将上述代码替换为
UIGraphicsBeginImageContext(image.size);
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
我看到了图像。但我必须把它放在一层,因为它是一个精灵。- 你确定这些图像是在正确的地方找到的吗李>
- 此iphone支持图像格式和颜色编号吗
- 图像没有被其他图形调用透支
- 在最坏的情况下,未检测到的内存泄漏会导致图像在内存中被覆盖
CGContextDrawLayerInRect(context, backRect, backLayer);
或
请注意,CGLayer与CALayer不同。CALayer是可以通过核心动画来设置动画的,其中CGLayer只是一个方便的工具,用于将静态的2-D核心图形绘制在一起。因为你是指这是一个精灵,我假设你会想动画这周围,所以CALayer将是更好的选择
我建议你读一下这本书,尤其是这本书。CALayers将在动画方面提供非常好的性能,因为它们是GPU加速的,不需要每一帧都重新绘制。核心图形不会为动画提供接近可接受的性能,因为重画是昂贵的操作。一切都在那里。如果我在代码前面加上UIGraphicsBeginImageContext(image.size)行;[image drawInRect:CGRectMake(0,0,image.size.width,image.size.height)];图像绘制正确。CGContextDrawImage(backContext,backRect,image.CGImage);?它不是在上下文中绘制图层吗?不,您是在创建的新图层上绘制图像,但是图层本身应该添加到当前上下文中。啊,好的。我添加了一行CGContextDrawLayerAtPoint(context,CGPointMake(0,0),backLayer);在代码末尾,但我仍然得到空图像。。。我所有的头发在绝望中变得灰白。。。
CGContextDrawLayerAtPoint(context,CGPointZero,backLayer);