2009-10-14 11 views
5

Qualcuno mi può mostrare un chiaro esempio di come utilizzareCome posso creare un CGImage con dati 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 
); 

Ho un CGFloat dataBuffer [width * height * 3];

Contiene tutti i dati RGB dell'immagine. Essenzialmente, passa da pixel R (0,0), G (0,0), B (0,0), R (0,1) ... a R (larghezza, altezza), G (larghezza, altezza) , B (larghezza, altezza)

Conosco la dimensione dell'immagine, larghezza x altezza. Come posso utilizzare le informazioni che ho e creare e CGImage ??

prega di aiuto, grazie

ho postato un'altra domanda che comprende la questione di cui sopra. E 'stato risposto correttamente da nschmidt, ecco il link

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

risposta

2

Il mistero più grande è il provider di dati. La risposta è che devi creare un oggetto CGDataProvider che contenga o possa fornire i dati dei pixel che hai.

Alcuni misteri minori sono quelli da passare per colorSpace e bitmapInfo. Quelli sono un oggetto CGColorSpace e una maschera bit CGBitmapInfo.

La spiegazione dell'array decode potrebbe essere più chiara, ma ciò che è chiaro è che probabilmente non ne avete bisogno. Passa al numero NULL.

Oltre a queste cose, tutto è evidente o ben spiegato in the documentation for this function.

+0

link sono rotti. – wcochran

Problemi correlati