2010-11-23 22 views
7

Quiero crear un CGImageRef y dibujar puntos en él.Dibujando en CGImageRef

Qué contexto utilizar para crear un CGImageRef vacío y poder dibujar sobre él. CGContextRef o CGBitmapContextRef?

Si puede proporcionar un código para crear una imagen CGImageRef vacía y dibujar en ella, le agradecería.

Respuesta

19
#define HIRESDEVICE (((int)rintf([[[UIScreen mainScreen] currentMode] size].width/[[UIScreen mainScreen] bounds].size.width)>1)) 


- (CGImageRef) blerg 
    { 
    CGFloat imageScale = (CGFloat)1.0; 
    CGFloat width = (CGFloat)180.0; 
    CGFloat height = (CGFloat)180.0; 

    if (HIRESDEVICE) 
     { 
     imageScale = (CGFloat)2.0; 
     } 

    // Create a bitmap graphics context of the given size 
    // 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef context = CGBitmapContextCreate(NULL, width * imageScale, height * imageScale, 8, 0, colorSpace, kCGImageAlphaPremultipliedLast); 


    // Draw ... 
    // 
    CGContextSetRGBFillColor(context, (CGFloat)0.0, (CGFloat)0.0, (CGFloat)0.0, (CGFloat)1.0); 
    // … 


    // Get your image 
    // 
    CGImageRef cgImage = CGBitmapContextCreateImage(context); 

    CGColorSpaceRelease(colorSpace); 
    CGContextRelease(context); 

    return cgImage; 
    } 
+0

gracias hombre ayudó mucho! – Cyprian

+2

Por alguna razón siempre tuve un área gris en blanco cuando probé esto, sin importar a qué establezca los valores de color de relleno. – micahhoover

+3

Usaría 'UIGraphicsBeginImageContextWithOptions' en iOS4 o posterior. De esa forma no es necesario considerar el factor de escala. – bioffe