2011-04-26 96 views
1

我目前正在进行图像修改。我使用了我自己的一个名为“Image”的类。从原始数据创建UIImage

它看起来像这样:

@interface Image : NSObject { 
    @public 
     int height; 
     int width; 
     float* data; 
} 

所以在数据我有花车,在RGBA格式这意味着他们由四个走四方。我无法改变我的Image类。

我需要从我的图像创建一个UIImage。我正在尝试这样的事情:

+(UIImage *)getUIImageFromImage:(Image *)_img { 
    NSData * imageData = (NSData *) _img->data; 
    return [[UIImage alloc] initWithData:imageData]; 
} 

我做错了什么?我的演员是(NSData *)还好吗?

回答

2

不,它不是。 NSData是一个Objective-C对象。 float *是一个或多个float值的原始指针。

如果你告诉我们该数据来源于,它是什么格式,我们也许能够提出一个方法将其转换到任何一个NSData对象或CGImage石英值,然后可以包裹在UIImage并与UIKit类一起使用。

+0

这个数据只是浮点值(我希望我的回答是正确的)在0.0到255.0之间 – 2011-04-26 18:43:34

+0

您必须手动将它转换为CGImageCreate()可以使用的值(可能是一个uint8_t数组'值。)没有内置的支持来构建来自这类数据的图像。 – 2011-04-26 19:09:39

+0

谢谢。无法使其工作困难,无法弄清楚如何使用CGDataProviderRef参数... – 2011-04-26 19:44:46