在IOS下,我试图通过绘制到通过CGBitmapContextCreate创建的上下文来创建图像。以下是我正在使用的代码(类似于我发现的一些示例),但是当我调用它时,没有任何内容被绘制。请注意,此示例中的“context”是通过调用UIGraphicsGetCurrentContext获得的,我可以成功地将其他内容绘制到此上下文中。有什么东西我不见了吗?
由于
CGContextRef bmContext;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
bmContext = CGBitmapContextCreate(nil, 200, 200, 8, 0, colorSpace, kCGImageAlphaPremultipliedLast);
CGFloat Color[4] = {
(CGFloat) 1,
(CGFloat) 0,
(CGFloat) 0,
(CGFloat) 1 };
CGRect Rect = { { 0, 0 }, { 200, 200 } };
CGContextSetFillColor(bmContext, Color);
CGContextFillRect (bmContext, Rect);
CGImageRef image = CGBitmapContextCreateImage(bmContext);
CGContextDrawImage(context, CGRectMake(100, 100, 200, 200), image);
CGImageRelease(image);
CGContextRelease(bmContext);
CFRelease(colorSpace);
答案 0 :(得分:1)
经过多次实验,我发现了问题。看来我需要打电话:
CGContextSetFillColorSpace(bmContext, colorSpace);
否则它似乎是灰度上下文,并且在设置填充颜色,强度和alpha时仅期望2个值。这意味着在上面的例子中,alpha总是为零,导致没有被绘制。将上下文设置为RGB颜色空间可以解决问题。
感谢所有花时间看我问题的人。