2009-10-14 10 views
5

Kann mir jemand ein klares Beispiel zeigen, wieWie erstelle ich ein CGImage mit RGB-Daten?

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 
); 

ich ein CGFloat Databuffer müssen, verwenden Sie [Breite * Höhe * 3];

Es enthält alle RGB-Daten des Bildes. Im Wesentlichen geht es von Pixel R (0,0), G (0,0), B (0,0), R (0,1) ... zu R (Breite, Höhe), G (Breite, Höhe) , B (Breite, Höhe)

Ich kenne die Größe des Bildes, Breite x Höhe. Wie verwende ich die Informationen, die ich habe und CGImage ??

Bitte helfen, danke

posted ich eine andere Frage, die die oben genannte Frage umfasst. Es wurde richtig von nschmidt beantwortet, hier ist der Link

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

Antwort

2

Das größte Geheimnis ist der Datenanbieter. Die Antwort dafür ist, dass Sie ein Objekt CGDataProvider erstellen müssen, das die Pixeldaten enthält oder bereitstellen kann, die Sie haben.

Einige weniger Geheimnisse sind, was für colorSpace und bitmapInfo passieren. Dies sind ein CGColorSpace Objekt und eine CGBitmapInfo Bitmaske.

Die Erklärung der decode Array könnte klarer sein, aber was ist klar, dass Sie wahrscheinlich keine brauchen. Pass NULL.

Abgesehen von diesen Dingen ist alles in the documentation for this function entweder selbst verständlich oder gut erklärt.

+0

Verbindungen gebrochen sind. – wcochran