2009-10-14 12 views
5

bất cứ ai có thể chỉ cho tôi một ví dụ rõ ràng về cách sử dụngLàm cách nào để tạo một CGImage với dữ liệu 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 
); 

Tôi có một CGFloat dataBuffer [chiều rộng * chiều cao * 3];

Nó chứa tất cả dữ liệu RGB của hình ảnh. Về cơ bản, nó đi từ điểm ảnh R (0,0), G (0,0), B (0,0), R (0,1) ... đến R (chiều rộng, chiều cao), G (chiều rộng, chiều cao) , B (chiều rộng, chiều cao)

Tôi biết kích thước của hình ảnh, chiều rộng x chiều cao. Làm cách nào để sử dụng thông tin mà tôi có và tạo và CGImage ??

Hãy giúp đỡ, nhờ

tôi đã đăng một câu hỏi mà bao gồm các câu hỏi trên. Nó được trả lời một cách chính xác bởi nschmidt, đây là liên kết

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

Trả lời

2

Bí mật lớn nhất đó là cung cấp dữ liệu. Câu trả lời cho điều đó là bạn cần phải tạo một đối tượng CGDataProvider có chứa hoặc có thể cung cấp dữ liệu pixel mà bạn có.

Một số bí ẩn nhỏ hơn là những gì cần vượt qua cho colorSpacebitmapInfo. Đó là đối tượng CGColorSpace và mặt nạ bit CGBitmapInfo.

Giải thích về mảng decode có thể rõ ràng hơn, nhưng rõ ràng là bạn có thể không cần. Vượt qua NULL.

Ngoài những thứ đó, mọi thứ đều hiển nhiên hoặc được giải thích rõ ràng trong the documentation for this function.

+0

Liên kết bị phá vỡ. – wcochran