2009-10-14 21 views
5

¿Alguien puede mostrar un claro ejemplo de cómo utilizar¿Cómo creo una imagen CG con datos RGB?

CGImageRef CGImageCreate 
(
    size_t width, 
    size_t height, 
    size_t bitsPerComponent, 
    size_t bitsPerPixel, 
    size_t bytesPerRow, 
    CGColorSpaceRef colorspace, 
    CGBitmapInfo bitmapInfo, 
    CGDataProviderRef provider, 
    const CGFloat decode[], 
    bool shouldInterpolate, 
    CGColorRenderingIntent intent 
); 

Tengo un CGFloat dataBuffer [ancho * alto * 3];

Contiene todos los datos RGB de la imagen. Esencialmente, va desde el píxel R (0,0), G (0,0), B (0,0), R (0,1) ... a R (ancho, alto), G (ancho, alto) , B (ancho, alto)

Conozco el tamaño de la imagen, ancho x alto. ¿Cómo uso la información que tengo y creo y CGImage?

Por favor ayuda, gracias

que publican otra pregunta que abarca la pregunta anterior. Que fue respondida correctamente por nschmidt, aquí está el enlace

Converting RGB data into a bitmap in Objective-C++ Cocoa

Respuesta

2

El mayor misterio se encuentra el proveedor de datos. La respuesta para eso es que debe crear un objeto CGDataProvider que contenga o pueda proporcionar los datos de píxeles que tiene.

Algunos misterios menores son qué pasar para colorSpace y bitmapInfo. Esos son un objeto CGColorSpace y una máscara de bits CGBitmapInfo.

La explicación de la matriz decode podría ser más clara, pero lo que está claro es que probablemente no la necesite. Pase NULL.

Aparte de esas cosas, todo es evidente o bien explicado en the documentation for this function.

+0

enlaces están rotos. – wcochran

Cuestiones relacionadas